Как настроить Mod_Rewrite

В Apache веб-сервер - один из основных строительных блоков Интернета, обслуживающий веб-сайты и приложения. Это сложная система с множеством опций, и одна из самых важных - это модуль перезаписи, или для краткости «mod_rewrite». В этой статье мы рассмотрим использование mod_rewrite, а затем узнаем, как настроить его на вашем собственном сайте на базе Apache.

Назначение модуля перезаписи Apache

Цель этого модуля - переписывать URL-адреса различными полезными способами. Это означает, что когда пользователи приходят на ваш сайт по одному URL-адресу (вводя его или выбирая ссылку, содержащую его), они «попадают» на другой URL-адрес. Есть ряд причин, по которым вы можете захотеть это сделать.

Перенаправление пользователей

Вы можете использовать mod_rewrite, чтобы направлять пользователей со старых, устаревших страниц, которые все еще могут появляться в результатах поиска, на новые, актуальные страницы. Например, предположим, что у вас есть страница по адресу https://www.mysite.com/review2015; если кто-то наткнется на ссылку и выберет ее, вы можете использовать правило перезаписи, чтобы направить его на http://www.mysite.com/review2019.

instagram viewer

Легче запоминать 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.

  1. Вам нужно будет найти, где находится файл конфигурации вашего Apache. Это будет зависеть от того, какой установщик вы использовали.

    • В Windows вы должны найти каталог с именем «/ conf» в каталоге установки Apache.
    • В популярном установщике XAMPP для macOS он находится в / Applications / XAMPP / xamppfiles / apache2 / conf.
    • В Linux он появится в каталоге / etc / apache2. В любом случае вы ищете файл с именем «httpd.conf», «http.conf» или «apache2.conf», поэтому вы также можете использовать функцию поиска вашей ОС для их поиска.
  2. Откройте файл конфигурации в текстовом редакторе, например Блокнот Windows или же TextEdit на macOS.

  3. Найдите строку «#LoadModule rewrite_module modules / mod_rewrite.so» и удалите хэштег в начале. Это обозначает комментарий, то есть когда он есть, сервер Apache проигнорирует все в этой строке. Удалите хэштег, и в следующий раз Apache выполнит эту строку при запуске.

  4. Сохраните файл конфигурации и перезапустите сервер Apache.

  5. В качестве альтернативы, в некоторых версиях Linux вы увидите несколько каталогов, например "/ etc / apache2 / mods-available". и "/ ​​etc / apache2 / mods-enabled." Они содержат биты файлов конфигурации, которые собраны вместе динамически. В этом случае вы можете запустить следующие команды, чтобы сначала включить модуль перезаписи, а затем перезапустить сервер Apache:

    sudo a2enmod переписать
    systemctl перезапустить apache2
  6. Теперь ваш сервер Apache готов переписать URL-адреса за вас. Только теперь нужно сказать, какие и при каких обстоятельствах переписывать.

Определение правил Mod_Rewrite на вашем сайте

Вам нужно будет определить правила для mod_rewrite, используя язык регулярных выражений. К счастью, есть помощь. Для данной перезаписи, которую вы хотите включить, вы можете использовать такой инструмент, как генератор правил VisioSpark.

  1. Введите URL-адрес, с которого вы хотите перезаписать, то есть тот, который будет вводить пользователь, в поле Из: поле.

  2. Введите URL-адрес, который вы хотите переписать, то есть тот, по которому в конечном итоге перейдет пользователь, в К: поле.

    Генераторы правил перезаписи графического интерфейса пользователя могут сэкономить вам усилия на изучение RegEx
  3. Выберите элемент управления Captcha, затем выберите Идти. После этого генератор должен выдать результат, начинающийся с «RewriteRule.

    Если вам случится найти другой генератор, эти шаги могут немного отличаться, но, надеюсь, в том же самом приближении.

Ввод правил Mod_Rewrite для вашего сайта

Так что это замечательный способ создания этих правил простым щелчком мыши. Но куда вы их положите?

Чтобы использовать правила на веб-сайте, вам необходимо создать файл с именем «.htaccess» в корне веб-сайта. Это несколько зависит от платформы, где хранятся файлы для определенного веб-сайта, но вам нужно это понять, чтобы развернуть свой веб-сайт там в первую очередь.

Возможно, файл с таким именем уже существует. Если да, то отлично! Вы можете просто добавить свои строки в этот файл.

  1. Создайте новый текстовый файл с именем ".htaccess"в корне вашего сайта.

  2. В первой строке введите приведенный ниже код. Это сообщает серверу, что вы хотите разрешить перезапись для текущего веб-сайта.

    RewriteEngine на
  3. Затем добавьте каждую из линий, созданных с помощью генератора. Начало нашего файла будет выглядеть так:

    RewriteEngine на
    RewriteRule ^ notebooks / spiral / 3-subject-spiral / $ / 3d78654954c29ace998658? &% {QUERY_STRING}
  4. Как и при любом изменении конфигурации Apache, рекомендуется перезапустить сервер.

Использование Mod_Rewrite требует времени, но результаты того стоят

Использование функции mod_rewrite в Apache определенно требует определенных усилий. Вы должны возиться с текстовыми файлами конфигурации, найти способ добавить в эти файлы очень привередливые регулярные выражения и знать, как вручную останавливать и перезапускать службу. Скорее всего, потребуется много проб и ошибок, прежде чем вы получите что-то, что не приводит к ошибке и ведет себя правильно.

Тем не менее, как только вы освоитесь, вы получите большую пользу от mod_rewrite. Ваши посетители смогут лучше запоминать ваши URL-адреса, и ваш рейтинг в Google, вероятно, улучшится. В конце концов, получающиеся в результате "красивые URL-адреса" не только для показа. Они тоже функциональны.