2017-10-18 5 views
0

I, comme beaucoup, je suis actuellement en utilisant cette méthode de rediriger tout le trafic du port 80 à https:Quelle méthode de redirection HTTPS utilisant .htaccess est la meilleure?

RewriteEngine On 
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://example.com/$1 [R,L] 

Bien que je l'ai aussi utilisé la méthode suivante avec succès:

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

et ont vu cette méthode de travail, mais je ne suis pas l'utiliser partout actuellement:

RewriteEngine On 
RewriteCond %{HTTPS} !=on 
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L] 

avec 3 bonnes options (et potentiellement plusieurs autres), ainsi que Chro moi et d'autres maintenant showing security warnings pour les versions non https, je me demande quelle devrait être la meilleure voie à suivre. L'une de ces méthodes est-elle explicitement meilleure qu'une autre, ou est-ce que ce sera très spécifique? Une «meilleure pratique» va-t-elle émerger? Avec https comme nouvelle norme, y a-t-il une raison d'utiliser R au lieu de R=301, étant donné que la redirection https devrait presque toujours être permanente? Je demande parce que, comme beaucoup de pigistes, je suis loin d'être un expert en configuration de serveur, mais il joue encore un rôle majeur dans le lancement réussi du plus petit site web de nos jours.

Répondre

1

Si vous pouvez spécifier le nom de domaine, la meilleure solution est de combiner les deux https et www:

RewriteEngine On 
RewriteCond %{HTTP_HOST} !^www\. [OR,NC] 
RewriteCond %{HTTPS} off 
RewriteRule^https://www.exemple.com%{REQUEST_URI} [NE,R=301,L] 

Mais en aucun cas, vous devez d'abord rediriger vers https sans www, ou à http avec ou sans www .

Et vous devez rediriger 301 (avec [R = 301]) et non 302 (par défaut avec [R]).