web-dev-qa-db-fra.com

WordPress Rediriger toutes les requêtes HTTP vers HTTPS via .htaccess

Je l'ai déjà fait plusieurs fois auparavant, et pourtant je ne parviens pas à le refaire pour une raison inconnue. Essayé des solutions sans fin. Tout ce que j'ai essayé a pour résultat une boucle de redirection sans fin.

Quelle est la meilleure option pour cela?

Mise à jour 1 Voici quelques-unes des choses essayées;

RewriteCond %{HTTP_Host} ^website\.co\.uk [NC]
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://www.website.co.uk/$1 [R,L]

Et;

RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://www.website.co.uk$1 [R,L]

Testé dans différents navigateurs pour éviter les problèmes de mise en cache. Toujours rien, juste obtenir une boucle de redirection continuelle.

5
Michael Cropper

Je vois, lorsque vous entrez un lien vers votre page autre que votre maison, par exemple:

  • http://www.michaelcropper.co.uk/contact-me
  • www.michaelcropper.co.uk/contact-me
  • michaelcropper.co.uk/contact-me

Si https:// ne figure pas dans le préfixe, le lien HTTP se charge à la place. Ajoutez ce qui suit dans votre .htaccess entre les balises <IfModule mod_rewrite.c>:

RewriteCond %{HTTPS} !=on
RewriteRule ^(.*) https://%{SERVER_NAME}/$1 [R,L]

Si aucune modification supplémentaire n'a été apportée à votre .htaccess, il devrait ressembler à ceci:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# Rewrite HTTP to HTTPS
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*) https://%{SERVER_NAME}/$1 [R,L]
</IfModule>
# END WordPress

Dites-moi comment ça se passe.

8

Vous pouvez définir l'en-tête dans .htaccess

<IfModule mod_headers.c>
    Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains" env=HTTPS
</IfModule>
1
Iggy

essayez ceci dans votre .htaccess:

RewriteCond %{HTTP:X-Forwarded-Proto} !=https
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
</IfModule>
# END WordPress
1
Jasom Dotnet

Ajouter du code dans un fichier .htaccess

 <IfModule mod_rewrite.c>
   RewriteEngine On
   RewriteBase /

   RewriteCond %{HTTPS} !=on
   RewriteRule ^ https://%{HTTP_Host}%{REQUEST_URI} [L,R=301]

   # BEGIN WordPress
   RewriteRule ^index\.php$ - [L]
   RewriteCond %{REQUEST_FILENAME} !-f
   RewriteCond %{REQUEST_FILENAME} !-d
   RewriteRule . /index.php [L]
 </IfModule>
0
Siddharth Shukla

Si vous utilisez W3 Total Cache, la réponse de @Ethan Jinks O'Sullivan ne fonctionnera que si vous placez la redirection avant les mods W3 Total Cache dans .htaccess, comme indiqué ci-dessous.

#BEGIN Rewrite HTTP to HTTPS
<IfModule mod_rewrite.c>
  RewriteCond %{HTTPS} !=on
  RewriteRule ^(.*) https://%{SERVER_NAME}/$1 [R,L]
</IfModule>
#END Rewrite HTTP to HTTPS

# BEGIN GZIP COMPRESSION
...
# END GZIP COMPRESSION

# BEGIN DEFLATE COMPRESSION
...
# END DEFLATE COMPRESSION

# BEGIN W3TC Browser Cache
...
# END W3TC Browser Cache

# BEGIN W3TC Page Cache core
...
# END W3TC Page Cache core

# BEGIN WordPress
<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /
  RewriteRule ^index\.php$ - [L]
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule . /index.php [L]
</IfModule>
# END WordPress
0
Chris Sprague

Ajoutez simplement ceci dans votre fichier .htaccess

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_Host}%{REQUEST_URI} [L,R=301]

RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress
0
zihadul