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.
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.
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>
essayez ceci dans votre .htaccess
:
RewriteCond %{HTTP:X-Forwarded-Proto} !=https
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
</IfModule>
# END WordPress
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>
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
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