web-dev-qa-db-fra.com

Forcer globalement SSL sur toutes les pages

Actuellement, mon domaine www.example.com est configuré pour forcer HTTPS et cela fonctionne. Le site lie également correctement tout ce qui est HTTPS. (il n'y a aucune occurrence de HTTP dans la base de données).

Toutefois, si vous visitez une sous-page, vous pouvez modifier l'URL en HTTP à nouveau, par exemple http://example.com/subpage/, sans appliquer le protocole HTTPS.

J'ai cette règle dans mon .htaccess à la racine:

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

Des idées quelle est la cause de ceci?

2
Rizzah

Pour rediriger globalement toutes vos pages vers HTTPS, ajoutez les lignes suivantes à votre .htaccess:

# Globally force SSL.
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_Host}%{REQUEST_URI} [L,R=301]

Cela devrait être placé directement après RewriteEngine on si vous n'avez pas de réécriture précédente.

1
leymannx

Essayez cette règle htaccess

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