Mon fichier .htaccess est dans la racine, et services multiples sites Web.
Il contient un bloc RewriteEngine.
Je voudrais empêcher les règles d’évaluation d’Apache si l’hôte n’est pas (www) www.example.com:
RewriteEngine On RewriteBase / #If this is not about example.com, it is probably about our other websites, exit here RewriteRule %{HTTP_HOST} !^(www|)example.com$ - [L]
Cependant, cela entraîne une erreur interne de 500. Une directive RewriteRule est probablement due à l’utilisation de {HTTP-HOST}.
Alors je pense maintenant à quelque chose comme ceci:
RewriteCond %{HTTP_HOST} !^(www|)example.com RewriteRule (.*) $1 [L]
Mais cela nécessiterait une réécriture Apache et serait mauvais pour les performances.
Quelqu’un une suggestion?
Je voudrais empêcher les règles d’évaluation d’Apache si l’hôte n’est pas (www) http://www.example.com
Vous utilisez quand même mod_rewrite. La façon de le faire est de sauter la règle si ce n’est pas www , vous devez donc vous assurer que c’est le cas.
Quelque chose comme ça devrait fonctionner dans le fichier .htaccess du répertoire racine:
RewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} ^www\.example\.com [NC] RewriteRule ^(.*) /$1 [NC,L]
C’est le contraire de ce que vous avez essayé.
Suite à la suggestion d’ Arkanon , cette option suppose qu’il y a plus de domaines et applique la règle uniquement à celle sélectionnée (example.com), avec ou sans www.
RewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} ^(www\.)?example\.com [NC] RewriteRule ^(.*) /$1 [NC,L]