У меня есть небольшой сайт, который обслуживает 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».
apache-2.4
https
http
htpasswd
Кевин М
источник
источник
RewriteRule
в вашем.htaccess
с условием на нем обслуживаются более HTTPS.<VirtualHost>
. Поэтому вам просто нужно настроить другой файл robots.txt в одном из них. Примерно так:RewriteRule ^/robots.txt$ /path/to/alternative/robots.txt [L]
Ответы:
Используйте псевдоним
Создайте два файла, robots.txt и robots_http.txt, и добавьте их в свой http VirtualHost:
источник
Если вы не можете или не хотите изменять «основную» конфигурацию Apache, но вам нужно сделать это в
.htaccess
файле, вы можете использоватьRewriteRule
с,RewriteCond
который проверяет HTTPS.Что-то вроде:
должно работать (я не проверял).
Обратите внимание, что это основано на том, что Apache сам выполняет завершение HTTPS. Если HTTPS-завершение выполняется на обратном прокси-сервере перед этим, то условие, скорее всего, будет другим (и будет зависеть от конфигурации обратного прокси-сервера и Apache).
источник