Мы создаем
самые быстрые
динамические
сайты с удобной
системой
администрирования
г Москва, ул. Суворовская, д. 6   8-926-39-777-90   Написать нам

поиск по сайту

искать

Полезные статьи > Склейка доменов редиректом 301 модуля mod_rewrite
 
Главная
Создание сайта
Цены
Портфолио
Статьи
Инструкция по управлению сайтом
Обзоры
Контакты

Склейка доменов редиректом 301 модуля mod_rewrite

Допустим, вам необходимо чтобы при наборе в адресной строке браузера домена 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]

Яндекс.Метрика Индекс цитирования. карта сайта    
8-926-39-777-90

    Создание сайтов-визиток недорого, разработка Интернет-магазинов - Dog-ma.ru