Проблемы с 301 редиректом

Немного предыстории

Я привязал к новому хостингу старый домен с которого нужно сделать 301 редирект на новый сайт. Когда я делаю постраничный редирект со старого сайта www.psyholog-olga-shubik.ru на новый домен http://olgashubik-psy.ru, но он срабатывает только для главной страницы.

В файле .htaccess написано:

Redirect 301 / http://olgashubik-psy.ru
Redirect 301 /filmyi-o-nas/puteshestvie http://olgashubik-psy.ru/blog/puteshestvie/
и так далее: большое количество таких пар в формате источник-цель
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.olgashubik-psy\.ru$ [NC]
RewriteRule ^(.*)$ http://olgashubik-psy.ru/$1 [R=301,L]

То есть со старой страницы www.psyholog-olga-shubik.ru/filmyi-o-nas/puteshestvie должна срабатывать переадресация на страницу с новым адресом http://olgashubik-psy.ru/blog/puteshestvie/

Что получилось

Но этого не происходит. Если мы набираем адрес www.psyholog-olga-shubik.ru/filmyi-o-nas/puteshestvie, то редирект обрабатывает его следующим образом:

kesh-sourse-page

То есть куда-то пропадает слэш. Если его добавить вручную, то тогда редирект «срабатывает». В чем же может быть причина?

Проблема с 301 редиректом

FuzzBones / Shutterstock.com

Для меня важно было решить вопрос как можно скорее. Я изучал технические документации обоих поисковых систем в поисках ответа. И даже с помощью обратной связи написал письмо в службу поддержки Яндекса:

Здравствуйте. Я делал межхостовый постраничный редирект, но он почему-то срабатывает только для главной страницы.
Вот здесь я привел кусочек кода и скриншот. http://www.fortress-design.com/problemy-s-301-redirektom/
Посмотрите, плиз, в чем может быть причина?

С уважением, Илья.

Решение проблемы с 301 редиректом

P.S. Так, одну причину нашел. Конфликт вызван был перовой строкой Redirect 301 / http://olgashubik-psy.ru. Как только ее убрал, сразу все внутренние страницы заработали. Но, как же теперь перенаправить главную страницу?

P.P.S. Решил и вторую проблему. Где-то проскальзывала информация, что очередность директив тоже имеет значение. И мне пришла идея попробовать указать директиву перенаправления на главную в самом конце списка после внутренних страниц. Вот это и стало определяющим фактором!. То есть редирект с главной страницы старого сайта на главную страницу нового как бы перекрывал остальные правила для внутренних страниц. Решение было гениальным ) написать правило для главных в самом конце )

Спасибо за внимание. Хеппи энд!

О том, что все сделано верно подтвердил и Платон Щукин.

Здравствуйте, Илья!

На сколько я вижу, Вы самостоятельно разобрались с данной ошибкой, сейчас редирект корректно работает для всех страниц старого домена. В скором времени робот отследит данные изменения.

Ваш сайт olgashubik-psy.ru уже начал индексироваться и сможет появиться в результатах поиска после следующих 1-2 обновлений поисковой базы.


Просим Вас высказать свое мнение о полученном ответе: http://feedback2.yandex.ru/appraisal.xml?session=5e5191ce663657beb42295d93499a3651870e60f-28054375-58242486

С уважением, Платон Щукин
Служба поддержки Яндекса
http://help.yandex.ru/

Какие еще могут быть причины

Вполне возможно, что проблема с mod_alias, можно попробовать сделать редирект через mod_rewrite, если не получится. Поэтому надо убедиться, что на хостинге соответствующие модули включены.

Как узнать, что модуль mod_alias на хостинге включен? Очень просто.

Вы можете создать информативный файл: phpinfo.php. В нём прописать следующую директиву:

<? phpinfo(); ?>

Проверка: http://ваш_домен/phpinfo.php

Если mod_alias есть в списке Loaded Modules  (загруженные модули) значит он включен.

Какие были сложности при тестировании и отладке редиректов

Я работаю в Гугл Хроме. Хотя наверное другие браузере не менее жестко кэшируют. В общем если неправильно указал директиву, то потом исправив ее, при проверке как бы «ничего не меняется». И это реально осложняет процесс отладки.

На помощь приходят другие барузеры или анонимайзеры. Анонимайзер — это онлайн-прокси, предоставляющий прозрачный доступ к интересующему ресурсу. Анонимайзеры очень удобны и в плане тестирования. Потому что тогда наличие кэша не имеет силы. Если вы все-таки хотите очистить кэш Гугл Хрома, по этой ссылке можете прочесть.

Но если вам все же необходимо решить какую-то нетривиальную задачу или исключить влияние локальных программ, с помощью анонимайзера вы подобно человеку-невидимке сможете незаметно заходить на другие сайты и скрыть IP-адрес посетителя. Для этого можете пройти по ссылке, чтобы воспользоваться бесплатным анонимайзером от известного сервиса Seogadget.