Сегодня рассмотрим различные способы переадресации с одного домена на другой, а так же, как сделать редирект всех страниц с www на без www и наоборот.
Редирект в помощью .htaccess
Самый популярный и на мой взгляд правильный способ это 301-редирект всех страниц одного домена, на страницы другого с помощью файла .htaccess. Такой способ перенаправит не только посетителей, но и даст указание поисковикам, что сайт находится на другом домене. Итак, открываем или создаем файл в корне сайта, с которого нужно сделать редирект, предварительно заменив site1.ru на домен с которого необходимо перенаправить, и site2.ru куда будет редирект.
RewriteEngine On
RewriteCond %{HTTP_HOST} site1.ru
RewriteRule (.*) http://site2.ru/$1 [R=301,L]
Перенаправление с www на без www
Не часто, но бывает нужно явно указать такое перенаправление. Хотя сейчас на большинстве хостингов оно уже настроено.
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.(.+)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
Перенаправление домена .рф
Все аналогично как и у некириллических доменов, за исключением того, что домен необходимо указывать в латинском варианте. Преобразовать домен в латиницу можно с помощью этого сервиса.
RewriteEngine OnRewriteCond %{HTTP_HOST} http://xn--80arbjktj.xn--p1ai/RewriteRule (.*) http://site2.ru/$1 [R=301,L]
Редирект на PHP
Такой вариант подойдет, если редирект необходимо сделать только с одной страницы на другую. Добавляем код в файл index.php и указываем адрес назначения:
<?php
header('Location: http://www.site.ru/');
exit;
?>
Редирект на JavaScript
Этот вариант аналогичен редиректу на PHP и подойдет только для одной страницы.
<script>location="http://site.ru";</script>
Редирект на HTML
Редирект указывается в теге <head>.
Редирект на другой сайт
<meta http-equiv="refresh" content="5;http://site.ru">
Редирект на другую страницу
<meta http-equiv="refresh" content="0;http://site.ru/page.html">