109 votes

.htaccess - comment forcer "www." de manière générique?

Cela va changer domain.com à www.domain.com :

 # Force the "www."
RewriteCond %{HTTP_HOST} !^www\.domain\.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]
 

Comment remplacer la partie "domaine" afin que cela fonctionne sur n'importe quel domaine?

260voto

Gumbo Points 279147

Je voudrais utiliser cette règle:

RewriteCond %{HTTP_HOST} !^$
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

La première condition vérifie si l' Hôte de la valeur n'est pas vide (dans le cas de HTTP/1.0); la deuxième vérifie si l' Hôte de la valeur ne commence pas avec www.; la troisième vérifie HTTPS (%{HTTPS} est soit on ou off, alors %{HTTPS}s est soit ons ou offs et dans le cas d' ons le s est assortie). La substitution d'une partie de l' RewriteRule puis juste fusionne les informations des parties à une URL complète.

46voto

Martin Drapeau Points 656

Cela va le faire:

 RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
 

3voto

john mccarthy Points 21

Cela ne fonctionnera pas avec les sous-domaines.

domain.com est correctement redirigé vers www.domain.com

mais

images.domain.com est redirigé vers www.images.domain.com

Au lieu de vérifier si le sous-domaine est "pas www", vérifiez s'il y a deux points:

 RewriteCond %{HTTP_HOST} ^(.*)$ [NC]
RewriteCond %{HTTP_HOST} !^(.*)\.(.*)\. [NC]
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ HTTP%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
 

1voto

RoUS Points 558

Les éléments suivants doivent préfixer 'www' pour toute demande qui n'en contient pas et rediriger la demande modifiée vers le nouvel URI.

 RewriteCond "%{HTTP_HOST}" "!^www\."         [NC]
RewriteCond "%{HTTP_HOST}" "(.*)"
RewriteRule "(.*)"         "http://www.%1$1" [R=301,L]
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X