ConoHa Wing を使って運用しているサイトで、.htaccess で www あり・なし統一(正規化)を設定後しばらくしてから機能しなくなり、URL によってはリダイレクトエラーになってしまう現象が発生したのでそのメモです。
原因は ConoHa Wing のコンテンツキャッシュでした。
対応策:コンテンツキャッシュを OFF にして解決
約1ヶ月前に3つのサイトを ConoHa Wing に移行して、それまで設定していた .htaccess の www あり・なし統一(正規化) をそのまま継続し、移転時に問題なく動作することを確認。
以下が .htaccess に記述した正規化の部分です。2つのサイトでは www ありに、もう1つはなしに統一する設定です。
RewriteEngine On RewriteCond %{HTTP_HOST} !^www\. RewriteRule .* https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteEngine On RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L]
例えば、https://www.example.com が正規化された URL である場合、以下のアドレスにアクセスすると全てこの URL にリダイレクトされる設定です。
※ConoHa の場合、SSL を設定すると自動的に https の URL へリダイレクトされるようになるので、http から https へのリダイレクトは不要です(記述するとエラーになります)。
Google Search Console からの「カバレッジの問題が新たに検出されました」というメールが来て、指摘された URL にアクセスすると「このページは動作していません(ERR_TOO_MANY_REDIRECTS)」と表示されリダイレクトエラーになっているのに気づきました。
また設定時には正常に動作していた www の正規化が機能しなくなっていました。
正規のページは問題なく表示されていたため、Google Search Console からのメールが来なければ気が付くのがもっと遅くなっていたか、気が付かなかった可能性があります。
例えば正規の URL が https://www.example.com だとすると、今回の場合にリダイレクトエラーになっていた URL は http://example.com という www. なし(且つSSLなし)のものでした。
本来、「www.あり」にリダイレクトされるべき URL(例 https://example.com)にアクセスすると、リダイレクトはされずそのままの URL で表示されていました。
リダイレクトエラーなので、とりあえず、.htaccess の URL の正規化の部分を削除(コメントアウト)したところ、リダイレクトエラーの発生は回避することができました。
但し、当然ですが、「www.あり・なし」の正規化ができません。
正規化の記述に原因があるのではと、以下を試しましたが、結果は全て同じで現象は変わりませんでした。
RewriteEngine On RewriteCond %{HTTP_HOST} ^example\.com [NC] RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]
RewriteEngine On RewriteCond %{HTTP_HOST} ^(example\.com)(:80)? [NC] RewriteRule (.*) https://www.example.com%{REQUEST_URI} [R=301,L]
ConoHa のサポートに問い合わせたところ、「コンテンツキャッシュのOFFや独自に導入されているキャッシュプラグインなどがございましたら設定の変更や停止などをお試しいただけますでしょうか」とのことだったので、コンテンツキャッシュを OFF にして.htaccess の URL の正規化の部分を戻したところ、正常に機能するようになりました。
コンテンツキャッシュの設定は「サイト管理」→「サイト設定」→「応用設定」から変更できます。
デフォルトは「ON(静的コンテンツのみ)」になっているので、OFF に変更します。
今回3つのサイトの移転後、全てのサイトで同じ現象が発生していて、コンテンツキャッシュを OFF に変更したところ、全て問題が解決できました。
ConoHa Wing で、今まで正常に表示されていたものが、リダイレクトエラーになったら、コンテンツキャッシュを疑うのが良いかも知れません。
ConoHa のサポートページの「リダイレクトが繰り返されて(リダイレクトループ)しまってサイトが表示できません」に対する回答に以下のようなものがあります。
また、.htaccessの設定でも改善しない場合、弊社ご提供の機能「コンテンツキャッシュ」が
有効となっている状態でお客様のコンテンツ側でブラウザキャッシュを利用する設定にして
いる場合に発生するケースがございますため、一度コンテンツキャッシュのOFFをお試し
いただけますと幸いでございます。
ConoHa コンテンツキャッシュ関連ページ
関連ページ