Типовые перенаправления

Updated 1 year ago by Oleg

С помощью файла .htaccess сайта можно настроить перенаправления. В этой статье приведены часто используемые перенаправления. Для их работы необходимо иметь:

- стандартный VPS (или выделенный сервер) + Apache с включенным модулем mod_rewrite,

- стандартный VPS (или выделенный сервер) с установленной в автоматическом режиме панелью VestaCP или ISPmanager.

 

ВНИМАНИЕ! Описанные в статье перенаправления не подойдут для OS Bitrix7.

В ISPmanager для перенаправлений также можно использовать встроенные инструменты панели.

 

Перенаправления задаются в файле .htaccess в блоке <IfModule mod_rewrite.c>:

<IfModule mod_rewrite.c>

Options +FollowSymLinks

RewriteEngine on

#Правила

</IfModule>

Правила включают:

RewriteCond – условие,

RewriteRule – правило, т.е. действие, которое будет выполнено при выполнении условия.

 

Редирект на другой домен

Для того чтобы перенаправить с домена www.domain-1.com на www.domain-2.com, введите:

RewriteEngine on

RewriteCond %{HTTP_HOST} ^(www\.)? domain-1\.com$

RewriteRule ^(.*)$ http://www.domain-2.com/$1 [R=301,L]

 

Редирект c домена без www на домен с www

Для того чтобы перенаправить с домена domain.test.com на www.domain.test.com, введите:

Вариант 1, для определенного домена

RewriteCond %{HTTP_HOST} ^domain\.test\.com$ [NC]

RewriteRule ^(.*)$ http://www.domain.test.com/$1 [R=301,L]

 

Вариант 2, без указания какого-либо конкретного домена

RewriteCond %{HTTP_HOST} !^www\.(.*) [NC]

RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

 

Редирект с домена с www на домен без www

Для того чтобы перенаправить с домена www.domain.test.com на domain.test.com, введите:  

Вариант 1

RewriteCond %{HTTP_HOST} ^www\.domain\.test\.com$ [NC]

RewriteRule ^(.*)$ http://domain.test.com/$1 [R=301,L]

 

Вариант 2

RewriteCond %{HTTP_HOST} !^domain\.test\.com$ [NC]

RewriteRule ^(.*)$ http://domain.test.com/$1 [R=301,L]

 

Редирект в подкаталог

Для того чтобы перенаправить с поддомена www.test.domain.com в подкаталог test, введите: 

RewriteBase /

RewriteCond %{HTTP_HOST} ^test\.domain\.com$

RewriteCond %{REQUEST_URI} !/test/

RewriteRule ^(.*)$ /test/$1 [L]

 

Редирект c http на https

1. Для того чтобы перенаправить с http://domain-1.com на https://domain-1.com, введите:

RewriteBase /

RewriteCond %{HTTPS} !on

RewriteCond %{HTTP_HOST} ^domain-1.com$

RewriteRule ^(.*)$ https://domain-1.com/$1 [R=301,L]

 

2. Для сервера с панелью VestaCP введите:

RewriteCond %{SERVER_PORT} !^443$

RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

 

3. Для сервера с панелью ISPmanager при использовании Nginx введите:

RewriteBase /

RewriteCond %{HTTPS} off

RewriteCond %{HTTP:X-Forwarded-Proto} !https

RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

 

Редирект c http на https://www

 

Для того чтобы перенаправить с http://test.com на https://www.test.com, введите:

RewriteBase /

RewriteCond %{HTTPS} !on

RewriteCond %{HTTP_HOST} ^ test.com$

RewriteRule ^(.*)$ https://www.test.com /$1 [R=301,L]

 

Для того чтобы перенаправить с http://test.example.com на https://www.test.example.com, введите:

RewriteCond %{HTTP_HOST} ^test\.example\.com$ [NC]

RewriteRule ^(.*)$ https://www.test.example.com/$1 [R=301,L]

RewriteBase /

RewriteCond %{HTTPS} !on

RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

 

Редирект c http://www на https

Для того чтобы перенаправить с http://www.test.example.com на https://test.example.com, введите:

RewriteCond %{HTTP_HOST} ^www\.test\.example\.com$ [NC]

RewriteRule ^(.*)$ https://test.example.com/$1 [R=301,L]

RewriteBase /

RewriteCond %{HTTPS} !on

RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

 

Редирект с https на http:

RewriteBase /

RewriteCond %{HTTPS} on [NC]

RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [R=301,L]

 

Редирект на http для одной страницы

Вариант 1:

RewriteBase /

RewriteCond %{HTTPS} on [NC]

RewriteCond %{REQUEST_URI} ^/Необходимая.директория.страница$

RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [R=301,L]

 

Вариант 2:

RewriteBase /

RewriteCond %{HTTPS} !on

RewriteCond %{REQUEST_URI} !^/Необходимая.директория.страница$

RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

RewriteCond %{HTTPS} on [NC]

RewriteCond %{REQUEST_URI} ^/Необходимая.директория.страница$

RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [R=301,L]

 

Например, чтобы отключить редирект на https для страницы bitrix/user/1c_exchange.php для корректной работы обмена данных с 1C, введите:

RewriteBase /

RewriteCond %{HTTPS} !on

RewriteCond %{REQUEST_URI} !^/bitrix/user/1c_exchange\.php$

RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

RewriteCond %{HTTPS} on [NC]

RewriteCond %{REQUEST_URI} ^/bitrix/user/1c_exchange\.php$

RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [R=301,L]

Чтобы отключить редирект на https для этой же страницы для панели VestaCP, введите:

RewriteCond %{SERVER_PORT} !^443$

RewriteCond %{REQUEST_URI} !^/bitrix/user/1c_exchange\.php$

RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

  

RewriteCond %{SERVER_PORT} ^443$

RewriteCond %{REQUEST_URI} ^/bitrix/user/1c_exchange\.php$

RewriteRule .* http://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

 

Редирект на https для одной страницы

RewriteBase /

RewriteCond %{HTTPS} !on

RewriteCond %{REQUEST_URI} ^/Необходимая.директория.страница$

RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

 

 

Если у Вас остались вопросы - создайте тикет в техподдержку.


How did we do?


IS (opens in a new tab)

Powered by HelpDocs (opens in a new tab)