.htaccess-comment forcer " www."de façon générique?
cela changera domain.com
en www.domain.com
:
# Force the "www."
RewriteCond %{HTTP_HOST} !^www.domain.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/ [R=301,L]
Comment remplacer la partie " domaine "pour que cela fonctionne sur tout domaine?
8 réponses
j'utiliserais cette règle:
RewriteEngine On
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 la valeur Host N'est pas vide (dans le cas de HTTP/1.0); la deuxième vérifie si la valeur Host ne commence pas par www.
; la troisième vérifie si HTTPS ( %{HTTPS}
est soit on
soit off
, donc %{HTTPS}s
est soit ons
soit ons
). offs
et dans le cas de ons
le s
est égaler.) La partie de substitution de RewriteRule
fusionne alors simplement les parties d'information à une URL complète.
EDIT: ne fonctionne pas avec des URL comme: https://yourdomain.com/en/usa
Cela va faire:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/ [R=301,L]
si vous souhaitez rediriger toutes les requêtes non-www vers votre site vers la version www, tout ce que vous devez faire est d'ajouter le code suivant à votre .fichier htaccess:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/ [R=301,L]
ça ne marchera 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 n'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]
ce qui suit devrait préfixer 'www' à toute requête qui n'en a pas, et rediriger la requête éditée vers la nouvelle URI.
RewriteCond "%{HTTP_HOST}" "!^www\." [NC]
RewriteCond "%{HTTP_HOST}" "(.*)"
RewriteRule "(.*)" "http://www.%1" [R=301,L]
RewriteEngine On
RewriteCond %{HTTP_HOST} ^[^.]+\.[^.]+$
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [NE,L,R=301]
cette redirection example.com
vers www.example.com
à l'exclusion des sous-domaines.
cela a fonctionné comme par magie pour moi
RewriteCond %{HTTP_HOST} ^sitename.com [NC] RewriteRule ^(.*) $ https://www.sitename.com / $1 [L, R=301, NC]
il s'agit d'une question plus ancienne, et il existe de nombreuses façons de le faire. La réponse la plus complète, IMHO, se trouve ici: https://gist.github.com/vielhuber/f2c6bdd1ed9024023fe4 . (Coller et formater le code ici n'a pas fonctionné pour moi)