Mod_Rewrite — указывает, как веб-страницы и URL-адреса отображаются для посетителей.
Обращаем ваше внимание на использование правил Mod_Rewrite в файле .htaccess.
Перед созданием редиректа вам следует выбрать наиболее предпочтительный для вас тип редиректа:
Постоянный редирект имеет код состояния 301 и, в отличие от временного, кэшируется в памяти браузера. Это означает, что страница была перемещена, и просит все поисковые системы и пользовательские агенты, заходящие на страницу, обновить URL-адрес в своей базе данных. Это самый распространенный тип редиректа.
Временное перенаправление означает, что страница отправляет код состояния 302 в браузер. Код 302 говорит браузеру не кэшировать это перенаправление в сохраненные данные. Он перенаправит посетителя или поисковую систему, но поисковая система продолжит индексировать исходную страницу. Это рекомендуемый тип редиректа, если только вы не уверены, что никогда не измените его в будущем.
Список наиболее распространенных и полезных редиректов, которые можно настроить через файл .htaccess, можно найти ниже (домены, указанные в примерах, необходимо заменить на свои):
Постоянный редирект с example.com на domain.com
RewriteEngine ONRewriteCond %{HTTP_HOST} ^example\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.example\.com$
RewriteRule ^(.*)$ "http\:\/\/domain\.com/$1" [R=301,L]
Временная переадресация с example.com на domain.com
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.example\.com$
RewriteRule ^(.*)$ "http\:\/\/domain\.com\/" [R=302,L]
ПРИМЕЧАНИЕ. Ниже приведены примеры постоянных перенаправлений. Временный можно определить, заменив [R=301,L] на [R=302,L] в конце кода (где это необходимо).
Перенаправление с example.com/subfolder на domain.com
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.example\.com$
RewriteRule ^subfolder$ "http\:\/\/domain\.com\/" [R=301,L]
Перенаправление с HTTP на HTTPS
для определенного домена, example.com: RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule .* https://example.com/%{REQUEST_URI} [R,L]
или RewriteCond %{SERVER_PORT} 80
RewriteCond %{HTTP_HOST} ^example\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.example\.com$
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]
Перенаправление с не-WWW на WWW
для любого домена .htaccess вступает в силу:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
для определенного домена, example.com:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]
Перенаправление с WWW на не WWW
для любого домена .htaccess вступает в силу:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
для определенного домена, example.com:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.example\.com [NC]
RewriteRule (.*) http://example.com/$1 [R=301,L]
Изменяет корень каталога для основного домена на public_html/subfolder
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteCond %{REQUEST_URI} !^/subfolder/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /subfolder/$1
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteRule ^(/)?$ subfolder/index.php [L]
ПРИМЕЧАНИЕ. Файл .htaccess должен находиться в корневом каталоге домена, для которого вы хотите настроить определенные правила.
Отключение существующих правил .htaccess
Если вам нужно отключить некоторые из существующих правил, например, в целях тестирования, вы можете просто закомментировать их. Для этого добавьте знак решетки # в начале каждой строки правила.