[решено] Замена домена без смены хостинга с сохранением ссылочной целостности, тиц и pr

18 июня 2008 в 9:17

Дано: сайт, отзывающийся по двум доменам - старому и новому (olddomain.com и newdomain.com)

Хочется, чтобы все ходили по новому адресу: newdomain.com.

Для исправления ситуации с поисковиками в robots.txt для Yndex добавлена директива Host и он видит новый домен как главное зеркало, с которым надо работать. Везде написано, что Google эту директиву не понимает, однако средство анализа файлов robots.txt от Google не пожадловалось на эту директиву. Но осталось неясным - схавает ли Google новое зеркало? Никаких средств для работы с зеракалами в г-панели для вебмастеров я не нашел. Там можно лишь указать, с каким доменом работать - www.site.com или site.com

Но это все лирика. Хотелось бы с помощью 301 редиректа направлять всех и вся на новый домен. Нашел рекомендацию вписать в .htaccess строки:

Options +FollowSymLinks
RewriteEngine on
RewriteRule ^(.*)$ http://newdomain.com/$1 [L,R=301]

Сайт один и тот же, хостинг не менялся, файлы robots.txt и .htaccess у него тоже одинаковые. Поэтому клиенты, обращаясь по старому и новому урлу будут получать 301 редирект, что неправильно - ведь надо производить редирект только со старого домена. А заходя по новому вовсе будем крутиться в редиректе по кругу, каждый раз, снвоа и снвоа получая 301.

Помогите, пожалуйста, написать такое правило - с проверкой домена типа

если (старый домен)
то редирект_на_новый()
иначе ничего()

РЕШЕНИЕ ВОПРОСА

Находим в .htaccess строку

RewriteEngine on

После нее вписываем директивы:

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

Замените old.ru и new.ru на ваши старый и новый домен. Поисковики и браузеры, обращаясь по старым адресам, будут получать корректный редирект на новый адрес. Везде пишут, что тиц и pr при этом передаются новым страницам - просто потерпите несколько недель.

Комментарии

Некоторые авторы предлагают использовать PHP типа:

<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.newdomain.ru/newdir/newpage.htm");
exit();
?>

Неплохо и проще для меня, но куда впихнуть такую проверку?

18 июня 2008 в 9:35

Нашел такое:

# Various rewrite rules.
<IfModule mod_rewrite.c>
  RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.old.ru$ [NC,OR]
RewriteCond %{HTTP_HOST} ^(www.)old.ru$ [NC,OR]
RewriteCond %{HTTP_HOST} ^www.new.ru$ [NC]
RewriteRule ^(.*)$ http://new.ru/$1 [R=301,L]

Это работает! Но пока только для www.old.ru/*, а с old.ru/* на новый домен не перенаправляет. Что делать, господа?

18 июня 2008 в 9:52

Точно ли не происходит потери позиций в поисковиках? Просто, возможно, скоро тоже придётся такое делать...

18 июня 2008 в 10:11

Подскажите, пож-ста, что делать в этом случае - страый сайт на бесплатном хостинге, там они просто поддерживают сервер, никакой поддержки, пхп запрещен, .хтаксес запрещен, + ко всему у них там что-то сломалось, обновить файлы нельзя :(((
При всем при этом, старый сайт на первых позициях во многих поисковиках, куча ссылок входящих, тиц, пр, посещаемость наверное есть...
Как можно склеить старый сайт и новый? Даже если они починят доступ, то на старом нет пхп и .хтаксеса...
Что можете посоветовать? Спасибо.

18 июня 2008 в 10:37

Сделайте новый сайт, а в корень старого киньте файл robots.txt, где пропишите след. директивы:

User-agent: *
Host: ваш_новый_домен.ру

Яндекс воспримет ваш новый сайт как зеркало старого и будет индексировать по новому домену , т.к. вы принудителньо указали новый домен как основной. Что будет делать гугл - непонятно, надо поискать.

Со временем старый сайт можно будет грохнуть или перенаправлять всех посетителей посредством мета-тегов или яваскриптом на новый сайт.

18 июня 2008 в 11:01

на новом хостинге сделать "сайт" со старым доменом и редиректить оттуда? если можно перенести домен со старого сайта...

18 июня 2008 в 11:19

"PanDa777" wrote:
Точно ли не происходит потери позиций в поисковиках? Просто, возможно, скоро тоже придётся такое делать...

Теперь могу утверждать: позиции не потеряны, переезд прошел штатно.

1 декабря 2008 в 17:34

Такая ситуация.
Надо перенести контент с site.old на site.new, а site.old заполнить новым контентом. Сколько надо держать site.old со старым контентом?
Или после установки global_redirect и корректировки robots.txt/.htaccess можно сразу вносить новый контент на site.old?

14 апреля 2010 в 18:52

Прописал редирект с site.old на site.new в .htaccess.
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.site.old$ [NC,OR]
RewriteCond %{HTTP_HOST} ^site.old$ [NC]
RewriteRule ^(.*)$ http://site.new/$1 [R=301,L]
Соответственно, редиректит всё целиком.
Но не совсем это то. Надо чтобы редиректились только проиндексированные и перенесённые уже страницы на site.new. А site.old наполнять новым контентом и что бы он работал. Т.е. что бы был доступен site.old и его новый контент.

20 апреля 2010 в 14:19