Как обслуживать разные 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".
2 ответа
Используйте псевдоним
Создайте два файла, 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).