Редирект через .htaccess

Редирект — автоматическое перенаправление с одной страницы на другую. Например, если настроить редирект с site1.ru на site2.ru, пользователи, которые будут вводит в адресную строку браузера site1.ru, сразу попадут на сайт site2.ru. На хостинге 2domains перенаправление настраивается 2-мя способами: в панели управления и через конфигурационный файл .htaccess. В этой статье рассмотрим настройку в htaccess 301 редирект. 

  1. Откройте панель управления хостингом ISPmanager. Для этого перейдите в Личный кабинет. В строке услуги хостинга нажмите на 3 точки. В выпадающем списке нажмите Войти в панель управления.

  2. Перейдите в раздел «Доменные имена», выделите домен сайта, с которого хотите настроить редирект, и нажмите Каталог (таким образом, вы перейдете в корневой каталог сайта):

Если вы используете IDN-домен (например: сайт.рф), пропишите его в формате Punycode. Для этого вы можете использовать Punycode-конвертер.

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

  2. Добавьте в начало файла код из списка ниже (в зависимости от того, какой редирект нужен) и сохраните изменения, нажав Ok

 

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

RewriteEngine On

RewriteCond %{HTTP_HOST} old-site.ru

RewriteRule (.*) http://new-site.ru/$1 [R=301,L]

 Вместо: 

  • old-site.ru — домен, с которого будет идти редирект;

  • new-site.ru — домен, на который будет идти редирект.

 
С HTTP на HTTPS

Редирект всех страниц с http:// на https://, в том числе и с http://www на https://

Вариант 1

RewriteEngine On

RewriteCond %{SERVER_PORT} !^443$

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

или, если первый вариант не поможет, воспользуйтесь вторым вариантом:

Вариант 2

RewriteEngine On

RewriteCond %{HTTPS} =off 

RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L]

Если все варианты не помогли и возникает циклическая переадресация:

Вариант 3

RewriteEngine On

RewriteCond %{HTTPS} off

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

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

Вариант 4

RewriteEngine On 

RewriteCond %{ENV:HTTPS} !on 

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

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

В примерах ниже редирект настраивается для страницы login.php.

Вариант 1

RewriteEngine On

RewriteCond %{HTTPS} =off

RewriteCond %{REQUEST_URI} =/login.php

RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L]

или

Вариант 2

RewriteEngine On

RewriteCond %{SERVER_PORT} !^443$

RewriteCond %{REQUEST_URI} =/login.php

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

Редирект на https всех страниц, кроме одной

В примере ниже редирект настраивается для страницы test.php.

RewriteEngine On

RewriteCond %{HTTPS} =off

RewriteCond %{REQUEST_URI} !^/test.php

RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L]

 
С домена с WWW на домен без WWW

RewriteEngine On

RewriteCond %{HTTP_HOST} ^www.site.ru$ [NC]

RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]

Вместо site.ru имя вашего домена.

 
 
С домена без WWW на домен с WWW

RewriteEngine On

RewriteCond %{HTTP_HOST} ^site.ru

RewriteRule (.*) http://www.site.ru/$1 [R=301,L]

Вместо site.ru имя вашего домена.   

 
С главной страницы, кроме остальных страниц сайта

RewriteEngine On

RewriteRule ^$ https://site.ru [R=301,L]

Пример редиректа, вместо site.ru используйте имя вашего домена.  

Готово. После внесения изменений в файл .htaccess, редирект вступит в силу.

Если вы не нашли ответ, спросите у нас!
Запросить поддержку