С помощью файла .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]
Если у Вас остались вопросы - создайте тикет в техподдержку.