В Apache веб-сервер - один из основных строительных блоков Интернета, обслуживающий веб-сайты и приложения. Это сложная система с множеством опций, и одна из самых важных - это модуль перезаписи, или для краткости «mod_rewrite». В этой статье мы рассмотрим использование mod_rewrite, а затем узнаем, как настроить его на вашем собственном сайте на базе Apache.
Назначение модуля перезаписи Apache
Цель этого модуля - переписывать URL-адреса различными полезными способами. Это означает, что когда пользователи приходят на ваш сайт по одному URL-адресу (вводя его или выбирая ссылку, содержащую его), они «попадают» на другой URL-адрес. Есть ряд причин, по которым вы можете захотеть это сделать.
Перенаправление пользователей
Вы можете использовать mod_rewrite, чтобы направлять пользователей со старых, устаревших страниц, которые все еще могут появляться в результатах поиска, на новые, актуальные страницы. Например, предположим, что у вас есть страница по адресу https://www.mysite.com/review2015; если кто-то наткнется на ссылку и выберет ее, вы можете использовать правило перезаписи, чтобы направить его на http://www.mysite.com/review2019.
Легче запоминать URL-адреса
Вы, наверное, видели ссылки, связанные с электронной коммерцией, с такими URL-адресами, как https://www.thestore.net/3d78654954c29ace998658. Разработчики используют подобные ярлыки, чтобы гарантировать, что элементы имеют уникальный идентификатор, но для нетехнических типов это трудно запомнить.
К счастью, правило перезаписи может помочь вам опубликовать хороший URL-адрес, например https://www.thestore.net/notebooks/spiral/3-subject-spiral/, который, если следовать за ним, приводит посетителя к тому, у которого уродливый URL.
Уникальные имена страниц
В первые дни Интернета было обычным явлением видеть фактическое имя файлов страниц при посещении веб-сайта. Например, страница веб-сайта «О нас» может выглядеть так: http://www.someguys.org/about.html."
Но есть несколько причин, по которым вы их больше не видите. Во-первых, многие веб-сайты управляются системами управления контентом, в которых есть только несколько фактических файлов страниц. Остальная часть контента добавляется динамически по мере обслуживания страницы, поэтому все страницы могут выглядеть так, как будто у них один и тот же URL-адрес, например " http://www.someguys.org/index.php." Перезапись URL-адресов позволяет вам иметь внешний вид этих отдельных страниц, но при этом использовать динамическую CMS для управления вашим сайтом.
Более понятные URL-адреса
Поисковые системы ранжируют страницы выше, если у них есть легко понятные URL. Это означает, что веб-сайтам выгодно иметь URL типа " https://www.thecompany.com/services/consulting" вместо " https://www.thecompany.com/index.php? section = services & page = consulting ", поскольку последняя часть больше похожа на код, чем на URL.
Переписывание гарантирует, что вы всегда будете стараться изо всех сил с точки зрения URL.
Как установить mod_rewrite на свой сайт
Использование перезаписи URL-адресов в Apache требует двух основных компонентов:
- Включение фактического модуля перезаписи в Apache
- Перечисление необходимых правил перезаписи в файле .htaccess.
Хотя использование перезаписи URL-адресов в равной степени применимо к другим веб-серверам, таким как IIS или nginx, mod_rewrite и приведенные ниже методы будут применяться только к Apache.
Включить функцию перезаписи в Apache
Во-первых, вам нужно включить функцию перезаписи в вашей установке Apache.
-
Вам нужно будет найти, где находится файл конфигурации вашего Apache. Это будет зависеть от того, какой установщик вы использовали.
- В Windows вы должны найти каталог с именем «/ conf» в каталоге установки Apache.
- В популярном установщике XAMPP для macOS он находится в / Applications / XAMPP / xamppfiles / apache2 / conf.
- В Linux он появится в каталоге / etc / apache2. В любом случае вы ищете файл с именем «httpd.conf», «http.conf» или «apache2.conf», поэтому вы также можете использовать функцию поиска вашей ОС для их поиска.
Откройте файл конфигурации в текстовом редакторе, например Блокнот Windows или же TextEdit на macOS.
Найдите строку «#LoadModule rewrite_module modules / mod_rewrite.so» и удалите хэштег в начале. Это обозначает комментарий, то есть когда он есть, сервер Apache проигнорирует все в этой строке. Удалите хэштег, и в следующий раз Apache выполнит эту строку при запуске.
Сохраните файл конфигурации и перезапустите сервер Apache.
-
В качестве альтернативы, в некоторых версиях Linux вы увидите несколько каталогов, например "/ etc / apache2 / mods-available". и "/ etc / apache2 / mods-enabled." Они содержат биты файлов конфигурации, которые собраны вместе динамически. В этом случае вы можете запустить следующие команды, чтобы сначала включить модуль перезаписи, а затем перезапустить сервер Apache:
sudo a2enmod переписать
systemctl перезапустить apache2 Теперь ваш сервер Apache готов переписать URL-адреса за вас. Только теперь нужно сказать, какие и при каких обстоятельствах переписывать.
Определение правил Mod_Rewrite на вашем сайте
Вам нужно будет определить правила для mod_rewrite, используя язык регулярных выражений. К счастью, есть помощь. Для данной перезаписи, которую вы хотите включить, вы можете использовать такой инструмент, как генератор правил VisioSpark.
Введите URL-адрес, с которого вы хотите перезаписать, то есть тот, который будет вводить пользователь, в поле Из: поле.
-
Введите URL-адрес, который вы хотите переписать, то есть тот, по которому в конечном итоге перейдет пользователь, в К: поле.
-
Выберите элемент управления Captcha, затем выберите Идти. После этого генератор должен выдать результат, начинающийся с «RewriteRule.
Если вам случится найти другой генератор, эти шаги могут немного отличаться, но, надеюсь, в том же самом приближении.
Ввод правил Mod_Rewrite для вашего сайта
Так что это замечательный способ создания этих правил простым щелчком мыши. Но куда вы их положите?
Чтобы использовать правила на веб-сайте, вам необходимо создать файл с именем «.htaccess» в корне веб-сайта. Это несколько зависит от платформы, где хранятся файлы для определенного веб-сайта, но вам нужно это понять, чтобы развернуть свой веб-сайт там в первую очередь.
Возможно, файл с таким именем уже существует. Если да, то отлично! Вы можете просто добавить свои строки в этот файл.
Создайте новый текстовый файл с именем ".htaccess"в корне вашего сайта.
-
В первой строке введите приведенный ниже код. Это сообщает серверу, что вы хотите разрешить перезапись для текущего веб-сайта.
RewriteEngine на
-
Затем добавьте каждую из линий, созданных с помощью генератора. Начало нашего файла будет выглядеть так:
RewriteEngine на
RewriteRule ^ notebooks / spiral / 3-subject-spiral / $ / 3d78654954c29ace998658? &% {QUERY_STRING} Как и при любом изменении конфигурации Apache, рекомендуется перезапустить сервер.
Использование Mod_Rewrite требует времени, но результаты того стоят
Использование функции mod_rewrite в Apache определенно требует определенных усилий. Вы должны возиться с текстовыми файлами конфигурации, найти способ добавить в эти файлы очень привередливые регулярные выражения и знать, как вручную останавливать и перезапускать службу. Скорее всего, потребуется много проб и ошибок, прежде чем вы получите что-то, что не приводит к ошибке и ведет себя правильно.
Тем не менее, как только вы освоитесь, вы получите большую пользу от mod_rewrite. Ваши посетители смогут лучше запоминать ваши URL-адреса, и ваш рейтинг в Google, вероятно, улучшится. В конце концов, получающиеся в результате "красивые URL-адреса" не только для показа. Они тоже функциональны.