Use um alias
Crie dois arquivos, robots.txt e robots_http.txt e adicione isso ao seu httpHost VirtualHost:
Alias "/robots.txt" "/path/to/documentroot/robots_http.txt"
Eu tenho um site pequeno que é servido pelo Apache (não posso colocar o Nginx na frente nem alterar o Apache para nada), e ele está configurado para servir o mesmo site tanto no http como no https (sem redirecionamentos http & > https está lá até agora, então as versões http e https são exibidas em paralelo).
O que eu preciso é configurar .htaccess
para que o mesmo URI via http e via https sirva um arquivo de texto diferente?
Como http://example.com/proto.txt
diz "O site está sobre http", enquanto https://example.com/proto.txt
diria "O site exibido por https".
Use um alias
Crie dois arquivos, robots.txt e robots_http.txt e adicione isso ao seu httpHost VirtualHost:
Alias "/robots.txt" "/path/to/documentroot/robots_http.txt"
Se você não puder ou não quiser alterar a configuração "principal" do Apache, mas precisar fazer isso em um arquivo .htaccess
, poderá usar um RewriteRule
com RewriteCond
que verifica HTTPS.
Algo ao longo das linhas de:
RewriteEngine On
RewriteCond %{HTTPS} "on"
RewriteRule robots.txt robots_https.txt [L]
provavelmente deve funcionar (não testei).
Observe que isso é baseado no Apache fazendo a terminação HTTPS em si. Se a terminação HTTPS for feita em um proxy reverso antes dele, a condição provavelmente será diferente (e dependerá da configuração do proxy reverso e do Apache).
Tags https apache-2.4 htpasswd http