Переписывание URL-адресов в .htaccess: подробное руководство

Чтобы переписать запросы в файле.htaccess, вы можете использовать различные методы и директивы. Вот несколько методов, обычно используемых для перезаписи URL:

  1. Базовый RewriteRule. Директива RewriteRule — наиболее распространенный метод перезаписи URL-адресов в.htaccess. Он позволяет сопоставить шаблон в запрошенном URL-адресе и перенаправить его на другой URL-адрес.

Пример:

RewriteEngine On
RewriteRule ^old-page$ /new-page [L,R=301]

В этом примере любой запрос «старой страницы» будет перенаправлен на «новую страницу» с перенаправлением 301 (постоянным).

  1. RewriteCond: RewriteCond позволяет указать условия, которые должны быть выполнены для применения RewriteRule. Это обеспечивает большую гибкость при переписывании правил в зависимости от конкретных условий.

Пример:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]

В этом примере запросы перенаправляются с «example.com» на «www.example.com» с использованием перенаправления 301.

  1. Redirect: Директива Redirect предоставляет простой способ перенаправить URL-адрес в другое место. Его можно использовать как для отдельных URL-адресов, так и для целых каталогов.

Пример:

Redirect 301 /old-page http://www.example.com/new-page

В этом примере «старая страница» перенаправляется на « http://www.example.com/new-page » с использованием перенаправления 301.

  1. RedirectMatch: RedirectMatch похож на Redirect, но позволяет использовать регулярные выражения для более сложного сопоставления с шаблоном.

Пример:

RedirectMatch 301 ^/category/(.*)$ http://www.example.com/$1

В этом примере URL-адреса из каталога «категория» перенаправляются в корневой каталог того же домена.

  1. ProxyPass: ProxyPass позволяет перенаправлять запросы на другой сервер или в другое место. Это полезно для сценариев обратного прокси.

Пример:

ProxyPass /app http://internal-server:8080/app
ProxyPassReverse /app http://internal-server:8080/app

В этом примере запросы «/app» передаются на внутренний сервер, работающий на порту 8080.

  1. RewriteMap: RewriteMap позволяет сопоставлять URL-адреса с использованием внешних файлов или программ. Он позволяет выполнять сложную перезапись URL-адресов на основе пользовательской логики.

Пример:

RewriteMap lc int:tolower
RewriteRule ^(.*)$ ${lc:$1} [R=301]

В этом примере все URL-адреса преобразуются в нижний регистр с использованием внешней карты перезаписи.