web-dev-qa-db-fra.com

Comment servir différents robots.txt pour HTTP et HTTPS sur le même site?

J'ai reçu un petit site servi par Apache (je ne peux pas mettre Nginx à l'avant ni changer Apache à rien), et il est mis en place pour servir le même site sur http et https (aucune redirection http-> https est là pour Loin, donc les versions HTTP et HTTPS sont servies en parallèle).

Ce dont j'ai besoin, c'est de configurer .htaccess Donc, la même URI via http et via https de servir différents fichiers texte?

Comme http://example.com/proto.txt dit "le site est sur http" tandis que https://example.com/proto.txt dirait "le site servi sur https".

11
Kevin M

Utiliser n alias

Créez deux fichiers, robots.txt et robots_http.txt et ajoutez ceci à votre HTTP Virtualhost:

Alias "/robots.txt" "/path/to/documentroot/robots_http.txt"
19
Gerald Schneider

Si vous ne pouvez pas ou ne changerez pas la configuration Apache "principale", mais devez le faire dans un .htaccess Fichier, vous pouvez utiliser un RewriteRule avec un RewriteCond qui vérifie pour HTTPS.

Quelque chose dans le sens de:

RewriteEngine On

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

devrait probablement fonctionner (je ne l'ai pas testé).

Notez que cela est basé sur Apache Faire la terminaison HTTPS elle-même. Si la terminaison HTTTP est effectuée sur un proxy inverse avant celle-ci, la condition sera probablement différente (et dépendra de la configuration du proxy inverse et de Apache).

2
jcaron