1 votes

La règle de réécriture .htaccess ne réécrit pas l'alias

Je tente de servir un fichier robots.txt différent pour les sous-domaines alternatifs que j'utilise pour le domaine sharding afin que Google n'indexe pas m1.example.com et m2.example.com.

/etc/httpd/sites-enabled/www.example.com

Alias /robots.txt /var/www/html/robots.txt
....
ServerName www.example.com
ServerAlias m1.example.com m2.example.com
....
DocumentRoot /var/www/www.example.com/public

/var/www/www.example.com/public/.htaccess

RewriteEngine on
RewriteCond %{HTTP_HOST} !=www.example.com [NC]
RewriteRule ^/robots\.txt$ /var/www/html/robots-disallow.txt [L]
....

Lorsque j'accède à m1.example.com/robots.txt, il affiche le fichier robots.txt et non robots-disallow.txt.

Si j'ajoute la règle de réécriture à mon vhost dans /etc/httpd/sites-enabled/www.example.com, cela fonctionne bien mais pas dans le .htaccess

0voto

spetz Points 90

J'ai résolu le problème en supprimant le slash avant dans le fichier .htaccess pour ^/robots.txt$ maintenant il ressemble à :

RewriteRule ^robots\.txt$ /var/www/html/robots-disallow.txt [L]

Dans la configuration du vhost, cela fonctionnait avec le / dans le fichier .htaccess une fois que j'ai supprimé le / cela a fonctionné, je ne sais pas pourquoi, mais cela a résolu le problème pour moi.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X