У меня есть небольшой сайт, который обслуживается 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).