Настройка редиректов

Краткое описание, что такое редиректы, какие виды бывают и как настраивать на Apache и NGNIX

301 и 302 редирект

301 и 302 редирект осуществляет перенаправление с одного URL-адреса на другой. Для посетителей сайта совсем неважно, какой редирект используется. Данное отличие имеет значение для поисковых систем.

301 Moved Permanently — постоянный редирект. Данный редирект сообщает поисковым роботам, что страница перемещена на новый адрес и исходную страницу можно исключить из индексации.

302 Moved Temporarily — временный редирект. Он сообщает поисковому роботу, что страница временно перенесена и через некоторое время вновь будет доступна по старому адресу. Поисковые роботы повторно проиндексируют её спустя определенное время.

Выбор типа редиректа зависит от поставленной задачи. Если у вас есть необходимость сохранить адрес страницы и в дальнейшем размещать на нём информацию, рекомендуем использовать 302 редирект.

Кириллические домены .РФ и РУС, Punycode

Кириллический домен — это название сайта на русском языке (например, домен.рус). Как разновидность такие домены входят в большую группу IDN-доменов. Например: .РФ, .РУС.).

Для чего нужен Punycode?

Ещё со времен возникновения Интернета было решено, что домены могут содержать только буквы латинского алфавита, цифры и тире. С появлением кириллических доменов ничего не изменилось. Просто-напросто придумали, как переводить домен с кириллицы на латиницу, и назвали этот способ Punycode. С помощью него и происходит преобразование кириллических доменов. Например, домен розочки.рф в формате Punycode будет выглядеть так: xn--g1acfobj6c.xn--p1ai (домен .РФ на латинице). Поэтому не пугайтесь, если на месте вашего красивого названия сайта будет отображаться такой непривлекательный набор знаков.

Как перевести домен в Punycode?

Современные браузеры и мессенджеры имеют встроенную поддержку Punycode и понимают кириллические домены. Но в некоторых случаях (например, чтобы добавить домен в cPanel) нужно переводить домен в Punycode самому. Это несложно, инструкция ниже.

Откройте Punycode-конвертер для доменов .РФ. Введите имя вашего домена в строку и нажмите Punycode-конвертация:

Готово, перевод домена в Punycode сделан. В этой же строке появится ваш домен в формате Punycode:

Настройка редиректов Apache

вся настройка производиться в файле .httacces который обычно размещается в корне сайта.

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

RewriteEngine On
RewriteCond %{HTTP_HOST} old-site.ru
RewriteRule (.*) http://new-site.ru/$1 [R=301,L]

где:

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

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

301 редирект с домена с WWW на домен без WWW

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.site.ru$ [NC]
RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]

где site.ru — имя вашего домена.

301 редирект с домена без WWW на домен с WWW

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

где site.ru — имя вашего домена.

301 редирект для отдельного IP

RewriteEngine On
RewriteCond %{REMOTE_ADDR} 123.123.123.123
RewriteRule ^(.*)$ http://site.ru [R=301,L]

где site.ru — имя вашего домена.

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

RewriteEngine On
RewriteCond %{SERVER_PORT} ^443$ [OR]
RewriteCond %{HTTPS} =on
RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]

где site.ru — имя вашего домена.

Пример открытие сайта https://fanfan.perm.ru/ на Битрикс c доменов cvetkov-perm.ru и permflowers.com

<IfModule mod_rewrite.c>
  # стандартный код битрикса в файле htaccess
  Options +FollowSymLinks
  RewriteEngine On
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-l
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !/bitrix/urlrewrite.php$
  RewriteRule ^(.*)$ /bitrix/urlrewrite.php [L]
  RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization}]
  
  # 301 редирект с www на без www
  RewriteCond %{HTTP_HOST} ^www\.(.*)$
  RewriteRule ^(.*)$ http://fanfan.perm.ru/$1 [L,R=301]
  
  # основное зеркало
  RewriteCond %{HTTP_HOST} ^cvetkov-perm\.ru$ [OR,NC]
  RewriteCond %{HTTP_HOST} ^permflowers\.com$ [NC]
  RewriteRule ^(.*)$ http://fanfan.perm.ru/$1 [L,R=301]
</IfModule>

Настройка редиректов и прокси NGNIX

Last updated