Частковий редирект для 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
Розділ Блоги Реклама
Рекомендуємо:
Not Only SQL: шукаємо альтернативи реляційних баз
Гід по ІТ-спеціальностями ХНУРЕ
Впали позиції в Яндексі? Як визначити причину і повернути сайт в ТОП
iOS дайджест #16: Core Data
DOU Books: 5 книг для Enterprise Java розробника, які радить Сергій Немчинский