.htaccess
https
をwww
からnon-www
へのリダイレクトを追加しました。
<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>`
ドメインにアクセスすると、問題なく次のようなリダイレクトが行われます。
http://www.example.com → http://example.com
http://www.example.com/abc → http://example.com/abc
しかし、私が自分のドメインにhttps://www.example.com
またはhttps://www.example.com/abs
としてアクセスしても、自分のドメインはリダイレクトされず、エラーコードが表示されます。SSL_ERROR_INTERNAL_ERROR_ALERT
(Firefoxの場合)またはERR_SSL_PROTOCOL_ERROR
(Chromeの場合)
私はWordPressとプラグインReally Simple SSLを使用しました。
私のエラーを修正する方法について何かアイデアは?
私があなたにコードを与える前に、いくつかのポイントを説明させてください。
ポイント1:
https
リンクのみを許可した方が良いでしょう。同じ内容にhttp
とhttps
を混在させるセキュリティを破るhttps
で追加。 http
を使うと、あなたの訪問者があなたがあなたのサーバーから提供しているのと同じページが表示されることを確実にすることはできません。
ポイント2:
検索エンジンは、たとえドメインが同じであっても、http
とhttps
サイトは異なるサイトであると見なします。正しく設定されていないと、重複したペナルティを受ける可能性があります。ですから、https
をいっそう良くするためにSEOにすることをお勧めします。
ポイント3:
適切な.htaccess
CODEがあっても、SSLが正しく設定されていないと同じエラーになるかもしれません。 .htaccess
CODEを変更した後は、標準に対してSSL設定をテストすることをお勧めします。 this のようなツールを使うことができます。
上記の点に基づいて、使用できるコードは次のとおりです。
<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>
これにより、次の例のリダイレクトが行われます。
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
何らかの理由で、上記の推奨に従わず、http
とhttps
の両方を許可したい場合は、( この回答に基づいて )次のCODEを使用できます。
<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>
これにより、次の例のリダイレクトが行われます。
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