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

Веб-сервер 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=servicespage=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. В первой строке введите следующий код. Это говорит серверу, что вы хотите включить переписывание для текущего сайта.

    ПереписатьEngine на


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

    ПереписатьEngine на
    ПереписатьRule ^ ноутбуки / спираль / 3 предмета спираль / $ / 3d78654954c29ace998658?% {QUERY_STRING}


  4. Как и при любом изменении конфигурации Apache, рекомендуется перезагрузить сервер.


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

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

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

Ссылка на основную публикацию