Частковий редирект для 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 розробника, які радить Сергій Немчинский