ERR_SSL_PROTOCOL_ERRORが起こる原因は?「.htaccess」の書き方じゃなく、SSLの設定ミス

ネット集客実践クラブ(大阪)

ERR_SSL_PROTOCOL_ERRORが起こる原因は?「.htaccess」の書き方じゃなく、SSLの設定ミス

SSLイメージ

最近、ネットのセキュリティ強化のために、ホームページの「SSL化」の作業を行っています。

SSLの設定と、今までのホームページからのhttpsへの転送設定(リダイレクト)をしたら

ERR_SSL_PROTOCOL_ERROR

のエラーで、httpsのwww付きサイトが表示されなくなりました。

原因は、

wwwのサブドメインでSSLに対応ができてなかった

だったので、「www無しのSSL化」だけじゃなく、「wwwもSSL化」すれば解決しました。

httpsとhttp どちらも「wwwなしhttps」へリダイレクトする方法、.htaccessの書き方

ということで、

  • http://www.net-syukyaku-jissen.club/(httpでwww付き)
  • http://net-syukyaku-jissen.club/(httpでwww無し)
  • https://www.net-syukyaku-jissen.club/(httpsでwww付き)

の3パターンを

  • https://net-syukyaku-jissen.club/

にリダイレクトで統一する方法です。

今回は、「.htaccess」に書きました。


# BEGIN 自分

RewriteEngine on
RewriteBase /

# httpからの通信を、httpsにリダイレクト(www有り無し)
RewriteCond %{HTTPS} off
RewriteRule ^(.*$) https://net-syukyaku-jissen.club/$1 [R=301,L]

# httpsからの通信でwww有りの場合、www無しにリダイレクト
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} ^www.net-syukyaku-jissen.club$
RewriteRule ^(.*)$ https://net-syukyaku-jissen.club/$1 [R=301,L]

# BEGIN WordPress
# "BEGIN WordPress" から "END WordPress" までのディレクティブ (行) は
# 動的に生成され、WordPress フィルターによってのみ修正が可能です。
# これらのマーカー間にあるディレクティブへのいかなる変更も上書きされてしまいます。

RewriteEngine On
RewriteBase /

RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

# END WordPress

httpsとhttp どちらも「wwwなしhttps」へリダイレクトする「.htaccess」の書き方解説

ワードプレスを使ってるので、後半の

# BEGIN WordPress
# “BEGIN WordPress” から “END WordPress” までのディレクティブ (行) は
# 動的に生成され、WordPress フィルターによってのみ修正が可能です。
# これらのマーカー間にあるディレクティブへのいかなる変更も上書きされてしまいます。

RewriteEngine On
RewriteBase /

RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

# END WordPress

の周辺(正確には、「# BEGIN WordPress」と「# END WordPress」の間)に設定を書くと、ワードプレスによって上書きされてしまいますので、それより前に書きます。

設定の考え方として、まずは、

「httpでの接続を全部httpsにリダイレクト」

させ、その後

「www有りをwww無しにリダイレクト」

という流れです。

これだと、

「www有りをwww無しにリダイレクト」

してから、

「httpでの接続を全部httpsにリダイレクト」

にしても上手くいきそうなのですが、これだと、https://www.にいきなりアクセスされると

ERR_SSL_PROTOCOL_ERROR

になります。

というか、

そもそもwwwもSSL化しておかないと接続ポートが違うので、接続自体ができない

ってのが原因みたいです。

「.htaccess」の処理は、WEBサーバーにアクセスした後の処理なので、接続できてないと「.htaccess」自体処理できないってことですね。

ということで、

「httpでの接続を全部httpsにリダイレクト」

させ、その後

「www有りをwww無しにリダイレクト」

という設定にしました。

まず、

RewriteEngine on

は、リダイレクト設定を「on」にする部分です。

RewriteBase /

で、リダイレクトする内容を、htaccessを設置しているディレクトリじゃなく、ルートからのパスとして設定します。

で、

# httpからの通信を、httpsにリダイレクト(www有り無し)
RewriteCond %{HTTPS} off
RewriteRule ^(.*$) https://net-syukyaku-jissen.club/$1 [R=301,L]

という部分の「RewriteCond」で条件を決めます。

ここでは「httpsがoffだったら」ですね。

この条件に当てはまるアクセスがきたら

「RewriteRule」(リダイレクトのルール)で、httpsの接続へ転送してください

としています。

次に

# httpsからの通信でwww有りの場合、www無しにリダイレクト
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} ^www.net-syukyaku-jissen.club$
RewriteRule ^(.*)$ https://net-syukyaku-jissen.club/$1 [R=301,L]

ですが、前の設定で、接続は全てSSLになってます。

なので、

「RewriteCond %{HTTPS} on」(httpsがon)

で、

「RewriteCond %{HTTP_HOST} ^www.net-syukyaku-jissen.club$」(www付きのアクセス)

だったら、

RewriteRule ^(.*)$ https://net-syukyaku-jissen.club/$1 [R=301,L](httpsでwww無し)

へ転送してください、となっています。

参考サイト)httpからhttpsにリダイレクト、www有無のリダイレクト方法(mod_rewrite)|レンタルサーバーナレッジ

関連記事

  1. アドセンスを掲載しようとしたら、ワードプレスのカスタムHTMLが…

集客のネタ話

  1. ランチェスター法則による、損害保険会社の経営戦略
    当方の商売やアドバイスのベースになってる竹田ランチェスターの竹田先生のところから、封…
  2. 単にSNS投稿してるだけでフォロー・いいね! が増えると良いんですけど、ま、…
  3. ネット集客 大阪
    ということで、めでたくネット集客実践クラブのホームページが、「ネット集客…
  4. 2020年、日本の人口ピラミッド
    ふと日本の年齢構成ってどうなってるのかなー?と思いまして、人口ピラミッドを調べてみま…
  5. 招き猫、お客さんを自分で招く力をつけましょう
    コロナでお客さんが減ってる状況は、かなりしんどいですよねー。飲食店さんなんかだと、商圏でのニ…

広告

ページ上部へ戻る