Pour une raison quelconque, je n'arrive pas à comprendre. J’ai examiné de nombreux exemples ici et sur le site Web d’Apache. J'essaie de forcer www.example.com
au lieu de example.com sur les deux HTTP et HTTPS, mais je n'essaie pas de forcer l'utilisation de HTTPS au lieu de HTTP.
Le code suivant semble fonctionner pour toutes les connexions HTTPS, mais ne provoquera pas de redirection pour les connexions HTTP.
RewriteEngine On
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_Host} !^www\.example\.com$ [NC]
RewriteRule ^ https://www.example.com%{REQUEST_URI} [R=301]
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_Host} !^www\.example\.com$ [NC]
RewriteRule ^ http://www.example.com%{REQUEST_URI} [R=301]
J'ai eu le même problème, et le ci-dessous l'a résolu pour moi.
RewriteEngine On
RewriteCond %{HTTP_Host} !^$
RewriteCond %{HTTP_Host} ^example\.com [NC]
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.%{HTTP_Host}%{REQUEST_URI} [R=301,L]
Votre solution semble juste. Mais laissez-moi vous fournir quelques points de contrôle que vous pouvez effectuer.
Code:
RewriteEngine On
RewriteCond %{HTTPS} = on
RewriteCond %{HTTP_Host} !^www\.example\.com$ [NC]
RewriteRule ^ https://www.example.com%{REQUEST_URI} [R=301,L]
RewriteCond %{HTTPS} != on
RewriteCond %{HTTP_Host} !^www\.example\.com$ [NC]
RewriteRule ^ http://www.example.com%{REQUEST_URI} [R=301,L]