htaccessで設定しても301リダイレクトが出来ない

ITネット

はてなブログで独自ドメインはwwwありが必須だったものが、wwwなしのネイキッドドメインでも対応可能ということになりました。

それによって、Google Search Consoleでサイトマップも正常に読み込まれるようになります。Sitemapが無くてもGoogleのボットは新しいページや記事を探してくれるので、検索にも新しい記事は乗ってきますが、この改善は地味にうれしいことです。

しかし、課題が発生しました。httpsで301リダイレクトしようとしても証明書が不正として正常に転送されないのです。。。

htaccessで301リダイレクト

htaccessの設定が正しくても301リダイレクトできません。。。

課題「SSL_ERROR_INTERNAL_ERROR_ALERT」

「SSL_ERROR_INTERNAL_ERROR_ALERT」

安全な接続ができませんでした

www.sample.com への接続中にエラーが発生しました。Peer reports it experienced an internal error.

エラーコード: SSL_ERROR_INTERNAL_ERROR_ALERT

受信したデータの真正性を検証できなかったため、このページは表示できませんでした。
この問題をウェブサイトの管理者に連絡してください。

 

試してみたコード

結論を書くと、どれもきちんと転送されずエラーが吐かれます。

とりあえず転送

# Redirect
Redirect permanent / http://sample.com/

細かく条件を分けて転送

RewriteEngine On

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

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

httpsをhttpに転送

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} on
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [L,R=301]
</IfModule>

その他

<IfModule mod_rewrite.c>
RewriteEngine On

RewriteCond %{HTTPS} =off [OR]
RewriteCond %{HTTP_Host} !^sample\.com$
RewriteRule ^(.*)$ “https://sample.com/$1" [R=301,L]

</IfModule>

 

状況の整理

現状、私の状況はこちら。

  1. httpからhttps、wwwありからwwwなしへの301リダイレクト
    →OK。正常に転送されます。
  2. httpsからhttps、wwwありからwwwなしへの301リダイレクト
    →NG。

SSL設定しているので、証明書の発行元が違うなどで、上手く動作していないのでしょう。

 

動作環境

  • 転送元:Lolipopサーバー
  • 転送先:はてなブログ

 

たぶん、結論

チクチク試して調べてを繰り返しているなかで、おそらくなのですが、結論にたどり着きました。Lolipopに無料SSLの利用要件についての記載がありました。

2.対象ドメインがサブドメインであり、サブドメインに利用されている独自ドメインのDNS情報がロリポップ!の情報になっていない
「 ○○○.hogemoge.com 」というサブドメインで無料SSLを利用するためには、サブドメインに利用されている独自ドメイン「 hogemoge.com 」(サブドメインなし)のDNS情報がロリポップ!の情報になっている必要があります。
「1」をご参照の上、サブドメインに利用されている独自ドメインのDNS情報をロリポップ!の情報へご変更ください。

これによるとサブドメインについては、サブドメインではないネイキッドドメインでロリポップに登録しておかなければならないという記載があります。今回の場合、はてなブログでネイキッドドメインを使っているので、無料SSLの対象ではなくなっており、その関係でSSLのエラーが吐かれている可能性が非常に高いです。

従って、Lolipopとはてなブログでドメインを共有する場合、ロリポップにはネイキッドドメイン、はてなブログにはサブドメインを割り当てた方が無難という結論になりそうです。。。

代替案

ネイキッドドメインはダメそうですが、www以外のサブドメインであればGoogle Search Consoleもサイトマップも正常に読み込んでくれるようになりました。

はてなブログってwwwだけだと思っていたのですが、CNAMEなので、www以外も使えますよね。私はwww以外にしてGoogle Search Consoleにサイトマップを読ませるとこれまで正常に読めなかったはてなブログのサイトマップも正常に読み取れるようになりました。

転送についても、htaccessで301リダイレクトできそうです。

取り急ぎ、情報の載せておきます。

 

ITネット

Posted by kei_kichy