Назад | Перейти на главную страницу

Как обслуживать разные robots.txt для http и https на одном сайте?

У меня есть небольшой сайт, который обслуживается Apache (я не могу поставить Nginx впереди или изменить Apache на что-либо), и он настроен для обслуживания одного и того же сайта как через http, так и через https (нет перенаправления http-> https, так что Таким образом, версии http и https обслуживаются параллельно).

Что мне нужно, так это настроить .htaccess так один и тот же URI через http и https для обслуживания другого текстового файла?

подобно http://example.com/proto.txt говорит: "Сайт закончился http", а https://example.com/proto.txt скажет: "Сайт обслуживается по https".

Использовать псевдоним

Создайте два файла, robots.txt и robots_http.txt, и добавьте их в свой http VirtualHost:

Alias "/robots.txt" "/path/to/documentroot/robots_http.txt"

Если вы не можете или не хотите изменять "основную" конфигурацию Apache, но должны сделать это в .htaccess файл, вы можете использовать RewriteRule с RewriteCond который проверяет HTTPS.

Что-то вроде:

RewriteEngine On

RewriteCond %{HTTPS} "on"
RewriteRule robots.txt robots_https.txt [L]

вероятно, должно работать (я не тестировал).

Обратите внимание, что это основано на том, что Apache сам выполняет завершение HTTPS. Если завершение HTTPS выполняется на обратном прокси-сервере до этого, то условие, скорее всего, будет другим (и будет зависеть от конфигурации обратного прокси и Apache).