Допустим, вам необходимо чтобы при наборе в адресной строке браузера домена http://example1.ru посетитель автоматически перенаправлялся на сайт http://example2.ru и при этом адреса страниц сохранялись. То есть чтобы при наборе http://example1.ru/file1.html вы бы попадали на http://example2.ru/file1.html.
Используя один из наиболее востребованных модулей веб-сервера Apache - mod_rewrite, настроим редирект с сайта example1.ru на example2.ru. В файле .htaccess, расположенном в корне сайта необходимо прописать следующие строчки.
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\. example1 \.ru$ [NC]
RewriteRule ^(.*)$ http:// example2.ru/$1 [L,R=301]
RewriteCond %{HTTP_HOST} ^example1 \.ru$ [NC]
RewriteRule ^(.*)$ http://example2.ru/$1 [L,R=301]
Краткое пояснение.
RewriteEngine On –включает замену URL. Директива RewriteBase / указывает на использование корневой директории сайта в качестве начальной.
RewriteCond определяет в каком случае следует применять замену непосредственно следующей за ним инструкции RewriteRule. С трока RewriteCond %{HTTP_HOST} ^www\. example1\.ru$ [NC] означает применение инструкции в случае, когда значением переменной сервера HTTP_HOST является строка www. example1.ru. Здесь точка –это любой одиночный символ, поэтому они экранированы обратным слешем. Знаки ^ и $ - это начало и конец строки соответственно. Флаг [NC] означает нечувствительность проверки к регистру букв.
Далее правило замены RewriteRule ^(.*)$ http://example2.ru/$1 [L,R=301] выполняет переадресацию на ту же страницу сайта только домена example2.ru. В данном случает проверяется относительный пусть до файла, исключая параметры GET, этот путь помещается в переменную $1. Таким образом итоговый URL складывается из http://example2.ru/ и относительно пути к файлу, параметры GET добавляются потом автоматически непосредственно перед переадресацией. Флаг L – указывает не применять дальнейших преобразований к этому адресу в рамках текущего прохода, а флаг R=301 - выполнить редирект с кодом 301, то есть перенаправление на постоянной основе.
Вообще для большинства случаев редиректа достаточно более короткого варианта:
RewriteEngine On
RewriteRule ^(.*)$ http:// example2.ru/$1 [L,R=301]