Как создать редирект с помощью файла .htaccess в cpanel?

Mod_Rewrite — указывает, как веб-страницы и URL-адреса отображаются для посетителей.

Обращаем ваше внимание на использование правил Mod_Rewrite в файле .htaccess.

Перед созданием редиректа вам следует выбрать наиболее предпочтительный для вас тип редиректа:


Постоянный редирект имеет код состояния 301 и, в отличие от временного, кэшируется в памяти браузера. Это означает, что страница была перемещена, и просит все поисковые системы и пользовательские агенты, заходящие на страницу, обновить URL-адрес в своей базе данных. Это самый распространенный тип редиректа.

Временное перенаправление означает, что страница отправляет код состояния 302 в браузер. Код 302 говорит браузеру не кэшировать это перенаправление в сохраненные данные. Он перенаправит посетителя или поисковую систему, но поисковая система продолжит индексировать исходную страницу. Это рекомендуемый тип редиректа, если только вы не уверены, что никогда не измените его в будущем.

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


Постоянный редирект с example.com на domain.com


RewriteEngine ON

RewriteCond %{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


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

Помог ли вам данный ответ? 8 Пользователи нашли это полезным (15 голосов)