.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)