Je suis conscient du fait qu'il y a des tonnes de questions dans cette section et dans une erreur de serveur concernant les renvois d'URL non-www
à www
. Mais je n'ai pas pu en trouver un qui traite de ce problème tout en préservant le protocole.
Je ne suis pas un expert en réécriture de mods, et mon code est simplement copié/collé ... Voici ce que j'ai:
RewriteCond %{HTTP_Host} ^domain.tld$ [NC]
RewriteRule ^(.*)$ http://www.domain.tld$1 [R=301,L]
Alors maintenant http://domain.tld
et https://domain.tld
sont transférés à http://www.domain.tld
. Comment faire en sorte que HTTPS reste sur HTTPS pendant que HTTP reste sur HTTP?
Juste un peu d'information. Les meilleures pratiques indiquent que le trafic en provenance de HTTP doit être redirigé vers HTTPS. Si votre site est accessible sur HTTPS, vous n'avez plus besoin de HTTP.
Je pense que vous pouvez associer la redirection no-www
à www
avec la redirection HTTP à HTTPS.
De plus, faites attention au contenu en double si votre site est accessible avec HTTP et HTTPS.
Vous pouvez utiliser le code que vous avez, ré-utilisez-le à nouveau avec HTTPS_Host
aussi (davantage de caractères échappés avec \
bien que cela ne soit peut-être pas nécessaire sur la plupart des serveurs). Comme w3d noté dans un commentaire ci-dessus , il est conçu pour fonctionner dans un fichier htaccess en raison du /
avant le $1
:
RewriteCond %{HTTP_Host} ^domain\.tld$
RewriteRule ^(.*)$ "http\:\/\/www\.domain\.tld\/$1" [R=301,L]
RewriteCond %{HTTPS_Host} ^domain\.tld$
RewriteRule ^(.*)$ "https\:\/\/www\.domain\.tld\/$1" [R=301,L]
Voici celui que nous utilisons parfois pour couvrir les situations de domaines addon. Considérez que la plupart des domaines addon utilisent un sous-domaine d’utilitaire sur un domaine hôte, qui est souvent accessible. Cela transmettrait également les sous et www-sous:
RewriteCond %{HTTP_Host} ^domain\.hostdomain\.tld$ [OR]
RewriteCond %{HTTP_Host} ^www\.domain\.hostdomain\.tld$ [OR]
RewriteCond %{HTTP_Host} ^domain\.tld$
RewriteRule ^(.*)$ "http\:\/\/www\.domain\.tld\/$1" [R=301,L]
RewriteCond %{HTTPS_Host} ^domain\.hostdomain\.tld$ [OR]
RewriteCond %{HTTPS_Host} ^www\.domain\.hostdomain\.tld$ [OR]
RewriteCond %{HTTPS_Host} ^domain\.tld$
RewriteRule ^(.*)$ "https\:\/\/www\.domain\.tld\/$1" [R=301,L]
Il existe des méthodes pour les combiner en un ensemble de règles, mais il est plus agréable, IMO, de les garder séparés HTTP
et HTTPS
"routeurs". Vous pouvez jouer avec les cibles de chacune si vous souhaitez également appliquer le mode SSL ou SSL.