Дано: сайт, отзывающийся по двум доменам - старому и новому (olddomain.com и newdomain.com)
Хочется, чтобы все ходили по новому адресу: newdomain.com.
Для исправления ситуации с поисковиками в robots.txt для Yndex добавлена директива Host и он видит новый домен как главное зеркало, с которым надо работать. Везде написано, что Google эту директиву не понимает, однако средство анализа файлов robots.txt от Google не пожадловалось на эту директиву. Но осталось неясным - схавает ли Google новое зеркало? Никаких средств для работы с зеракалами в г-панели для вебмастеров я не нашел. Там можно лишь указать, с каким доменом работать - www.site.com или site.com
Но это все лирика. Хотелось бы с помощью 301 редиректа направлять всех и вся на новый домен. Нашел рекомендацию вписать в .htaccess строки:
RewriteEngine on
RewriteRule ^(.*)$ http://newdomain.com/$1 [L,R=301]
Сайт один и тот же, хостинг не менялся, файлы robots.txt и .htaccess у него тоже одинаковые. Поэтому клиенты, обращаясь по старому и новому урлу будут получать 301 редирект, что неправильно - ведь надо производить редирект только со старого домена. А заходя по новому вовсе будем крутиться в редиректе по кругу, каждый раз, снвоа и снвоа получая 301.
Помогите, пожалуйста, написать такое правило - с проверкой домена типа
если (старый домен)
то редирект_на_новый()
иначе ничего()
РЕШЕНИЕ ВОПРОСА
Находим в .htaccess строку
После нее вписываем директивы:
RewriteCond %{HTTP_HOST} ^old.ru$ [NC]
RewriteRule ^(.*)$ http://www.new.ru/$1 [R=301,L]
Замените old.ru и new.ru на ваши старый и новый домен. Поисковики и браузеры, обращаясь по старым адресам, будут получать корректный редирект на новый адрес. Везде пишут, что тиц и pr при этом передаются новым страницам - просто потерпите несколько недель.
Комментарии
RewriteRule ^(.*)$ http://newdomain.com/$1 [L,R=301]
Наверное, что-то типа этого?
Некоторые авторы предлагают использовать PHP типа:
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.newdomain.ru/newdir/newpage.htm");
exit();
?>
Неплохо и проще для меня, но куда впихнуть такую проверку?
Нашел такое:
<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/* на новый домен не перенаправляет. Что делать, господа?
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(.*)old.ru$ [NC,OR]
RewriteCond %{HTTP_HOST} ^www.new.ru$ [NC]
RewriteRule ^(.*)$ http://new.ru/$1 [R=301,L]
</IfModule>
fasdalf@fasdalf.ru, спасибо, Друг!
Уже сам докопался
Точно ли не происходит потери позиций в поисковиках? Просто, возможно, скоро тоже придётся такое делать...
Везде пишут, что потерь не должно быть. В т.ч. в FAQах поисковиков.
Подскажите, пож-ста, что делать в этом случае - страый сайт на бесплатном хостинге, там они просто поддерживают сервер, никакой поддержки, пхп запрещен, .хтаксес запрещен, + ко всему у них там что-то сломалось, обновить файлы нельзя :(((
При всем при этом, старый сайт на первых позициях во многих поисковиках, куча ссылок входящих, тиц, пр, посещаемость наверное есть...
Как можно склеить старый сайт и новый? Даже если они починят доступ, то на старом нет пхп и .хтаксеса...
Что можете посоветовать? Спасибо.
Сделайте новый сайт, а в корень старого киньте файл robots.txt, где пропишите след. директивы:
User-agent: *
Host: ваш_новый_домен.ру
Яндекс воспримет ваш новый сайт как зеркало старого и будет индексировать по новому домену , т.к. вы принудителньо указали новый домен как основной. Что будет делать гугл - непонятно, надо поискать.
Со временем старый сайт можно будет грохнуть или перенаправлять всех посетителей посредством мета-тегов или яваскриптом на новый сайт.
на новом хостинге сделать "сайт" со старым доменом и редиректить оттуда? если можно перенести домен со старого сайта...
[этот тоже удалите]
[этот комментарий следует удалить]
Теперь могу утверждать: позиции не потеряны, переезд прошел штатно.
Такая ситуация.
Надо перенести контент с site.old на site.new, а site.old заполнить новым контентом. Сколько надо держать site.old со старым контентом?
Или после установки global_redirect и корректировки robots.txt/.htaccess можно сразу вносить новый контент на site.old?
Прописал редирект с 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 и его новый контент.