Реклама

Кнопки

301 редирект с нескольких алиасов на один с помощью .htaccess

7 января 2013 15:51

Жил да был один сайт с кучей алиасов, точнее их всего было 2, помимо главного зеркала, но при каждом был алиас с www. И вот в один прекрасный день заказчик возжелал, чтобы со всех алиасов, включая главный домен без www, переадресовывало на главный домен с www. Есть один простой способ, чтобы решить такую задачу через mod_rewrite, в файле .htaccess, нужно прописать следующее:

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.главныйдомен.ru$ [NC]
RewriteRule ^(.*)$ http://www.главныйдомен.ru/$1 [R=301,L]

Такая запись не везде работает, иногда приходится закрывать точки в домене слэшем :

RewriteCond %{HTTP_HOST} !^www.главныйдомен.ru$ [NC]
RewriteRule ^(.*)$ http://www.главныйдомен.ru/$1 [R=301,L]

Таким образом, все запросы не начинающиеся (для этого в записи присутствует !) с www.главныйдомен.ru будут переадресованы на www.главныйдомен.ru

Если уже есть готовый файл .htaccess и там прописаны какие-либо правила, то эту надпись надо ставить сразу после «RewriteEngine On», иначе может некорректно работать, например, если поместить эту запись в конец стандартного .htaccess CMS Joomla!, то редиректить будет со всех страниц на www.главныйдомен.ru/index.php

Иногда бывает необходимо исключить определенные разделы сайти из редиректа. На такой случай пригодится вот такая запись:

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

Здесь исключается адреса, содержащие слово admin в своем URL.

Оставьте комментарий: