Содержание
Немного предыстории
Я привязал к новому хостингу старый домен с которого нужно сделать 301 редирект на новый сайт. Когда я делаю постраничный редирект со старого сайта www.psyholog-olga-shubik.ru
на новый домен //olgashubik-psy.ru
, но он срабатывает только для главной страницы.
В файле .htaccess написано:
Redirect 301 / //olgashubik-psy.ru Redirect 301 /filmyi-o-nas/puteshestvie //olgashubik-psy.ru/blog/puteshestvie/ и так далее: большое количество таких пар в формате источник-цель Options +FollowSymLinks RewriteEngine On RewriteCond %{HTTP_HOST} ^www.olgashubik-psy\.ru$ [NC] RewriteRule ^(.*)$ //olgashubik-psy.ru/$1 [R=301,L]
То есть со старой страницы www.psyholog-olga-shubik.ru/filmyi-o-nas/puteshestvie должна срабатывать переадресация на страницу с новым адресом //olgashubik-psy.ru/blog/puteshestvie/
Что получилось
Но этого не происходит. Если мы набираем адрес www.psyholog-olga-shubik.ru/filmyi-o-nas/puteshestvie, то редирект обрабатывает его следующим образом:
То есть куда-то пропадает слэш. Если его добавить вручную, то тогда редирект «срабатывает». В чем же может быть причина?
Для меня важно было решить вопрос как можно скорее. Я изучал технические документации обоих поисковых систем в поисках ответа. И даже с помощью обратной связи написал письмо в службу поддержки Яндекса:
Здравствуйте. Я делал межхостовый постраничный редирект, но он почему-то срабатывает только для главной страницы.
Вот здесь я привел кусочек кода и скриншот. //www.fortress-design.com/problemy-s-301-redirektom/
Посмотрите, плиз, в чем может быть причина?С уважением, Илья.
Решение проблемы с 301 редиректом
P.S. Так, одну причину нашел. Конфликт вызван был перовой строкой Redirect 301 / //olgashubik-psy.ru. Как только ее убрал, сразу все внутренние страницы заработали. Но, как же теперь перенаправить главную страницу?
P.P.S. Решил и вторую проблему. Где-то проскальзывала информация, что очередность директив тоже имеет значение. И мне пришла идея попробовать указать директиву перенаправления на главную в самом конце списка после внутренних страниц. Вот это и стало определяющим фактором!. То есть редирект с главной страницы старого сайта на главную страницу нового как бы перекрывал остальные правила для внутренних страниц. Решение было гениальным ) написать правило для главных в самом конце )
Спасибо за внимание. Хеппи энд!
О том, что все сделано верно подтвердил и Платон Щукин.
Здравствуйте, Илья!
На сколько я вижу, Вы самостоятельно разобрались с данной ошибкой, сейчас редирект корректно работает для всех страниц старого домена. В скором времени робот отследит данные изменения.
Ваш сайт olgashubik-psy.ru уже начал индексироваться и сможет появиться в результатах поиска после следующих 1-2 обновлений поисковой базы.
—
Просим Вас высказать свое мнение о полученном ответе: //feedback2.yandex.ru/appraisal.xml?session=5e5191ce663657beb42295d93499a3651870e60f-28054375-58242486С уважением, Платон Щукин
Служба поддержки Яндекса
//help.yandex.ru/
Какие еще могут быть причины
Вполне возможно, что проблема с mod_alias, можно попробовать сделать редирект через mod_rewrite, если не получится. Поэтому надо убедиться, что на хостинге соответствующие модули включены.
Как узнать, что модуль mod_alias на хостинге включен? Очень просто.
Вы можете создать информативный файл: phpinfo.php
. В нём прописать следующую директиву:
<? phpinfo(); ?>
Проверка: //ваш_домен/phpinfo.php
Если mod_alias
есть в списке Loaded Modules (загруженные модули) значит он включен.
Какие были сложности при тестировании и отладке редиректов
Я работаю в Гугл Хроме. Хотя наверное другие браузере не менее жестко кэшируют. В общем если неправильно указал директиву, то потом исправив ее, при проверке как бы «ничего не меняется». И это реально осложняет процесс отладки.
На помощь приходят другие барузеры или анонимайзеры. Анонимайзер — это онлайн-прокси, предоставляющий прозрачный доступ к интересующему ресурсу. Анонимайзеры очень удобны и в плане тестирования. Потому что тогда наличие кэша не имеет силы. Если вы все-таки хотите очистить кэш Гугл Хрома, по этой ссылке можете прочесть.
Но если вам все же необходимо решить какую-то нетривиальную задачу или исключить влияние локальных программ, с помощью анонимайзера вы подобно человеку-невидимке сможете незаметно заходить на другие сайты и скрыть IP-адрес посетителя. Для этого можете пройти по ссылке, чтобы воспользоваться бесплатным анонимайзером от известного сервиса Seogadget.