J'ai ajouté .htaccess
https
redirect de www
à non-www
avec:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_Host} ^www\.
RewriteCond %{HTTPS}s ^on(s)|off
RewriteCond http%1://%{HTTP_Host} ^(https?://)(www\.)?(.+)$
RewriteRule ^ %1%3%{REQUEST_URI} [R=301,L]
</IfModule>`
Lorsque je visite mon domaine, les redirections suivantes se font sans problème:
http://www.example.com → http://example.com
http://www.example.com/abc → http://example.com/abc
Mais lorsque je visite mon domaine en tant que https://www.example.com
ou https://www.example.com/abs
, mon domaine ne redirige pas et affiche le code d'erreur: SSL_ERROR_INTERNAL_ERROR_ALERT
(dans Firefox) ou ERR_SSL_PROTOCOL_ERROR
(dans Chrome).
J'ai utilisé WordPress et le plugin Really Simple SSL.
Une idée sur la façon de réparer mon erreur?
Avant de vous donner le code, laissez-moi vous expliquer quelques points:
Point 1:
Il est préférable de n'autoriser que les liens https
. Mélanger http
& https
pour le même contenurompt la sécuritéajouté par https
. Avec http
, vous ne pouvez jamais être sûr que la même page s'affiche sur vos visiteurs depuis votre serveur.
Point 2:
Les moteurs de recherche considèrent les sites http
& https
comme des sites différents, même lorsque le domaine est identique. Donc, s'il n'est pas configuré correctement, vous risquez d'obtenir une pénalité en double. Il est donc recommandé d’utiliser https
jusqu’au mieuxSEOaussi.
Point 3:
Même avec le code .htaccess
approprié, vous pouvez obtenir la même erreur si SSL n’est pas configuré correctement. Ainsi, après avoir modifié le code .htaccess
, il est préférable de tester votre configuration SSL par rapport aux normes. Vous pouvez utiliser un outil tel que this .
En fonction des points ci-dessus, voici le code que vous pouvez utiliser:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} =off [OR]
RewriteCond %{HTTP_Host} !^example\.com$
RewriteRule ^(.*)$ "https://example.com/$1" [R=301,L]
# remaining htaccess mod_rewrite CODE for WordPress
</IfModule>
Cela fera les exemples de redirections suivants:
http://www.example.com/ → https://example.com/
http://www.example.com/abc → https://example.com/abc
https://www.example.com/ → https://example.com/
https://www.example.com/abc → https://example.com/abc
# Additionally, even if your site is reachable by IP or
# some other domains or subdomains, this CODE will fix that too
http://Your_Server_IP/abc → https://example.com/abc
http://sub-dmoani.example.com/abc → https://example.com/abc
http://www.other-domain.com/abc → https://example.com/abc
Si, pour une raison quelconque, vous ne souhaitez pas suivre la recommandation ci-dessus et que vous souhaitez tout de même autoriser http
et https
, vous pouvez utiliser le CODE suivant (basé sur cette réponse ):
<IfModule mod_rewrite.c>
RewriteEngine On
# set protocol variable
RewriteCond %{HTTPS} =on
RewriteRule ^(.*)$ - [env=proto:https]
RewriteCond %{HTTPS} =off
RewriteRule ^(.*)$ - [env=proto:http]
RewriteCond %{HTTP_Host} !^example\.com$
RewriteRule ^(.*)$ "%{ENV:proto}://example.com/$1" [R=301,L]
# remaining htaccess mod_rewrite CODE for WordPress
</IfModule>
Cela fera les exemples de redirections suivants:
http://www.example.com/ → http://example.com/
http://www.example.com/abc → http://example.com/abc
https://www.example.com/ → https://example.com/
https://www.example.com/abc → https://example.com/abc