Иногда приходится сталкиваться с ситуациями, когда необходимо переместить какие-то страницы с сайта (в пределах сайта или на другой сайт), а то и весь сайт на другой домен. К примеру у Вас обновляется структура сайта, или у Вас было несколько сайтов, и Вы решили их собрать в один,  или просто склеиваете сайты с www и без.

Но что делать с тем, что Ваш сайт или Ваши сайты проиндексированы поисковыми системами и выдаются в поисковых запросах на первых местах, наростили большую ссылочную массу, пути указаны в рекламных материалах и т.п.? Как все это не потерять? К тому же при переносе контента существует опасность, что поисковые роботы сочтут Ваш контент за неуникальный, взятый с Ваших прошлых сайтов.

 

На самом деле решение есть. Нужно всего лишь на старых страницах выдавать правильный редирект с ошибкой 301 (Страница перемещена навсегда. 301 Permanent Redirect) и указанием правильного адреса новой страницы. Сделать это  можно несколкими способами.

 

Способ первый. Редирект с помощью модуля mod_rewrite (файл .htaccess):

 

Если основной домен без www.

Options +FollowSymLinks RewriteEngine On RewriteCond %{HTTP_HOST} ^www\.(.*) [NC] RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

В данном случае мы производим "склейку" сайтов с www и без www. 

Строка RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]. Здесь указывается условие редиректа. В данном случае это наличие www. в адресе страницы.

Строка RewriteRule ^(.*)$ http://%1/$1 [R=301,L] подменяет адрес, удаляя поддомен www и передает ошибку от сервера 301, указывая, что страница перемещена на новый адрес навсегда.

 

Если же наоборот основной сайт с www и надо всем страницам добавить www.

Options +FollowSymLinks RewriteEngine On RewriteCond %{HTTP_HOST} ^yourdomain\.ru$ [NC] RewriteRule ^(.*)$ http://www.yoirdomain.ru/$1 [R=301,L]

 

Способ второй. С помощью PHP-скрипта.

Если Вам надо перенести только некоторые страницы, то наверняка гораздо удобнее будет использовать PHP-скрипт.

<?php // Указываем адрес страницы, на которую будет осуществлен редирект $newURL = 'http://newdomain.ru/page_address.html';
// Отправляем статус страницы "Перемещена навсегда" header("HTTP/1.1 301 Moved Permanently");
// Отправляем заголовок редиректа на новую страницу header("Location: $newURL");
// Прекращаяем выполнение скрипта (необязательно) exit(); ?>

! Имейте ввиду, что выполнение скрипта (отправление заголовков) необходимо производить до вывода любого текста. Любой лишний символ, даже пробел, выведеный раньше отправки этих заголовков, приведет к невозможности отправить эти заголовки, то есть к ошибке.

 

Эти меры помогут не только корректно перенести страницы, но и сохранить Google PR, что согласитесь, совсем не мало важно.