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