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

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. ワードプレス・ロゴ、WP

    ワードプレスのパスワード保護画面に「抜粋」があれば、それを表示す…

  2. Contact Form 7、コンタクトフォーム

    解決】Contact Form 7(コンタクトフォーム)に海外か…

  3. ワードプレス・ロゴ、WP

    ワードプレスVer6.0にしたら、QTags.addButton…

  4. ワードプレス・ロゴ、WP

    Contact Form 7 でスパム送信が沢山くるので対応して…

  5. Contact Form 7、コンタクトフォーム

    【解決】Contact Form 7のメール件名がISOから始ま…

  6. ワードプレス・ロゴ、WP

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

集客のネタ話

  1. SEO、SEO対策
    2024/04/24 06:13:37の被リンク、1,151件(前回04/20)コアアップデ…
  2. SEO、SEO対策
    2024/04/23 12:57:28の被リンク、1,151件(前回04/20)コアアップデ…
  3. そよら金剛、イオンスタイル金剛
    2024年にオープン予定の「そよら金剛」、着々と工事進んでるみたいです。そよら金剛の横に総戸…
  4. SEO、SEO対策
    2024/04/20 07:40:16の被リンク、1,151件(前回04/13)コアアップデ…
  5. インスタ ハッシュタグ 集客
    2024年の3月ごろからかと思いますが、インスタのハッシュタグの集客効果が殆ど無しになりました。…
ページ上部へ戻る