howto: Редирект внутренних страниц при переезда сайта на новый домен

H
На сайте с 17.11.2012
Offline
15
1018

Подобный вопрос уже поднимался но я решил расписать тему так как вижу её сам.

На многих сайтах для решения задачи переноса домена на другой хостинг, предлагается примерно такая конструкция:

RewriteCond %{HTTP_HOST} ^olddomen\.ru$ [OR]
RewriteCond %{HTTP_HOST} ^www\.olddomen\.ru$
RewriteRule ^/?$ "http\:\/\/newdomen\.ru\/" [R=301,L]

более того, именно эта конструкция генерируется при настройке переадресаций в некоторых панелях управления хостингом (например cPanel)!

В чём же её проблема?

А проблема в том - что при использовании подобной схемы пользователь зашедший по адресу olddomen.ru попадает на newdomen.ru, но вот пользователь, который попал из поисковой системы или набрал адрес olddomen.ru/category НЕ ПОПАДЁТ на newdomen.ru/category, а останется на olddomen.ru/category. Потому что olddomen\.ru подразумевает только домен, а не url внутренней страницы, и соответственно к ней применен не будет.

Но, возможно, для программиста разбирающегося в синтаксисе .htaccess это проблема вовсе и не проблема, потому что, на самом деле

решение очень просто:

RewriteCond %{HTTP_HOST} ^olddomen\.ru$ [OR]
RewriteCond %{HTTP_HOST} ^www\.olddomen\.ru$
RewriteRule ^/?(.*)$ "http\:\/\/newdomen\.ru\/$1" [R=301,L]

Использование именно второго варианта синтаксиса как минимум

решает несколько проблем:

- в индексе не будет ссылок на страницы со старым доменом

- PR внутренних страниц будет целиком перенесен на страницы на новом сайте

- пользователи будут пользоваться свежим сайтом, сколько бы раз вы не перезжали

Надеюсь что эта заметка кому-то сэкономит время.

siv1987
На сайте с 02.04.2009
Offline
427
#1

RewriteEngine On

RewriteCond %{HTTP_HOST} ^(www\.)?site1\.ru

RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]

Мало того, половина всех редиректов отсюда именно про перенос с одного домена на другой. Этих примеров просто море.

H
На сайте с 17.11.2012
Offline
15
#2

Ссори, не заметил. После битвы с этим косяком, из за того что cPanel мне это код подставила, да еще и в два часа ночи - внимательность притупляется.

Исправил пост.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий