.htaccess redirect

Redirect 301 (301 Permanent Redirect) используется в нескольких случаях: при смене домена, при переносе страницы сайта, для склейки имени сайта с www и без него. Это важно для передачи Page Rank (PR) и сохранения поискового трафика.

301 редирект это наилучший метод сохранения позиций в поисковых системах, когда нужно перенести страницу или сайт. Код "301" интерпретируется как постоянное перемещение ("moved permanently").

Простой редирект (в файле .htaccess или httpd.conf):

Redirect 301 / http://www.you_domain.com/new.html
где:
Redirect 301 - это инструкция, говорящая что страница перемещена
/ - означает, что все с верхнего уровня сайта, включая все подкаталоги, будет переадресовано
http://www.you_domain.com/new.html - новая страница или сайт (не забывайте поставить последний "/", если переадресация идет на сайт).

Чтобы переадресовать только страницу, сохранив PR старой страницы:

Redirect 301 /old/old.htm http://www.you_domain.com/new.htm
где:
/old/old.htm - путь и имя старой страницы

Аналогичный синтаксис для переадресации сайта:

RedirectPermanent / http://www.you_domain.com/
Пример переадресовки каталога:

RedirectPermanent /old-directory http://www.you_domain.com/new-directory/
Например, зашедших в test переадресуем на www.test.com, остальных на enter.test.com (порядок следования записей важен):

Redirect permanent /test    http://www.test.com/
Redirect permanent /          http://enter.test.com/
Использование mod_rewrite (прописывается в файле .htaccess):

Задача слияния имена сайта с www и без него, решается так:

Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^you_domain\.com
RewriteRule ^(.*)$ http://www.you_domain.com/$1 [R=permanent,L]  
альтернативный синтаксис:

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^you_domain\.com$ [NC]
RewriteRule ^(.*)$ http://www.you_domain.com/$1 [R=301,L]
Обозначение [R=301,L] означает: перенаправить клиента и отправить ему код статуса 301 (R=301) и сделать это правило последним (L).

Например, если необходимо чтобы вместо rewrite.htm загружался файл rewrite.html, нужно добавить в .htaccess:

RewriteEngine   on
RewriteBase     /
RewriteRule     ^rewrite\.htm$  rewrite.html [R=permanent]
Для замены всех .htm файлов .html файлами:

RewriteEngine  on
RewriteBase     /
RewriteRule     ^(.*)\.htm$  $1.html [R=permanent]
Прочли: 2176 | Добавлено: 19 июня 2011 | На главную