Mod_rewrite. Введение

В этом уроке мы расскажем о mod_rewrite, его возможностях и вариантах применения.

Описание значения

Mod_rewrite – это вид модуля интернет сервера Апаче (Apache). Он используется для перенаправления контента с других страниц во время перехода по определенному URL. К примеру, если пользователь введет в соответствующей строке:

http://www.пример.ru/page11.html

апаче направит его на страницу page11.html, но если mod rewrite включить , то он выдаст контент совершенно другой страницы, к примеру:

http://www.пример.ru/page12.html

Стоит отметить, что смена адреса осуществляется непосредственно в сервере Апаче, а это значит, что url остается тем, которое вводил пользователь (в нашем случае: http://www.пример.ru/page11.html), а сам контент передается с абсолютно другой страницы. Это и есть основное отличие этого модуля от перенаправления HTTP, несмотря на возможность перенастройки mod_rewrite на перенаправление на разные url.

Возможности модуля:

  • Маскировка некрасивых, сложных адресов URL;
  • Блокировка возможности копирования картинок с ресурса;
  • Избегание системной ошибки во время сайтовой реконструкции;
  • Перенаправление на страницу по каноническим URL.

Как применять

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

Основные конфигурации mod_rewrite:

  • RewriteRule: отвечает за правило редактирования URl;
  • RewriteEngine: активирует или дезактивирует модуль под запрос текущего.

Покажем принцип работы модуля. Создаем документ .htaccess, размещаем в нем текст, который указан ниже и выкладываем на интернет ресурс.

RewriteEngine on
RewriteRule ^page.html$ http://www.yandex.com/ [R=301]

В первой строке мы активировали работу модуля, а во второй сделали трансфер запросов страницы page.html на yandex.com, используя 301 перенаправку.

Если во время перехода у вас выскочила системная ошибка, то скорей всего хостинговый провайдер не поддерживает mod_rewrite. Обратитесь в администрацию компании, которая предоставляет вам услуги хостинга.

Сегодня мы в общих чертах рассмотрели модуль mod_rewrite и узнали его основные задачи и возможности. Надеемся, вы все усвоили.