Частичный редирект для robots.txt для Nginx
В последнее время стало популярным переводить сайты на защищенный протокол https. Это повышает безопасность работы с сайтом, это якобы повышает лояльность поисковиков к сайту и вообще классно и модно.
Статей по переводу WordPress на HTTPS в сети огромное множество, поэтому не буду на этом останавливаться.
Намного интереснее задачи и проблемы которые могут возникнуть при переводе сайта на работу с SSL сертификатом.
Одна из них, это то, что Яндекс во время переезда хочет чтобы файл robots.txt был доступен ему и по протоколу http и по протоколу https.
В инструкциях для Apache пишут что можно сделать вот так:
RewriteEngine On RewriteBase / RewriteCond %{HTTP:X-HTTPS} !1 RewriteCond %{REQUEST_URI} !robots.txt RewriteRule ^(.*)$ https://SiteName.ru/$1 [R=301,L]
А вот кусочек конфига который работает на Nginx. Возможно не самое изящное решение, но оно работает:
set $do_redirect 1; if ($scheme ~* ^https$) { set $do_redirect 0; } if ($request_uri ~* ^/robots\.txt$) { set $do_redirect 0; } if ($do_redirect = 1) { return 301 https://$server_name$request_uri; }
Некоторые вообще считают что это не критичная проблема и Яндекс сам разберется где ему искать новый robots.txt, но если клиент хочет, значит нужно сделать :-)
А как бы вы решили данную задачу?
Запись впервые появилась Блог про блоги от Дмитрия Донченко .
Нет похожих записей.
Опубліковано: 21/03/17 @ 07:49
Розділ Блоги Реклама
Рекомендуємо:
DOU Проектор: Navizor — розумний мобільний навігатор та система моніторингу якості доріг
Інфо-сайти: підсумки березня 2017 — вдалося розігнатися
Ответы на вопросы
Кейс: Продвижение с нуля интернет-магазина шин и дисков в Казахстане
Реактивные библиотеки RX