「リダイレクトが繰り返し行われました」エラーが出た(ERR_TOO_MANY_REDIRECTS)
ウェブサイトをSSL化したときに少しハマってしまったのでメモ。
エラーの内容
SSL化の申請をし、サイトのURL置換も完了。最後にhtaccessでhttp→httpsのリダイレクトをかけようところ、以下のようなエラーが発生しました。
このページは動作していません
xxx.com でリダイレクトが繰り返し行われました。
Cookie を消去してみてください.
ERR_TOO_MANY_REDIRECTS
文面に従いブラウザのキャッシュをクリアしてみるも問題は解決しませんでした。
原因:サーバーの仕様上、許されていない書き方でリダイレクトをしていた
サイトを設置しているレンタルサーバー「iCLUSTA+」の仕様を確認したところ、http→httpsへのリダイレクトでよく利用されている下記の記述が使えないことがわかりました。(.htaccessファイルでの各種リダイレクト設定(iCLUSTA+サポートサイト))
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
サーバーで指定されている下記の記述に変更したところ、無事エラーが解消されました。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{ENV:HTTPS} !^on$
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
XSERVERやさくらインターネットでは、前述の書き方で問題なくリダイレクトができますが、サーバーによっては許容されない記述や構文があるということで、一つ勉強になった事案でした。
ご質問など受け付けています
記事の中でわかりにくかったところ、もっと知りたかったこと、間違っていることなど、何でもお気軽にご連絡ください。
ご連絡は下記フォームを利用いただくか、ツイッターアカウント@flat8migi宛てでもOKです。