リダイレクトループとは、URL A が URL B にリダイレクトし、URL B が再び URL A にリダイレクトするなど、転送が循環的に繰り返される状態です。ブラウザは一定回数 (通常 20 回程度) のリダイレクトを検出すると、「このページはリダイレクトの回数が多すぎます」(ERR_TOO_MANY_REDIRECTS) というエラーを表示します。
リダイレクトループの主な原因は、リダイレクトルールの設定ミスです。たとえば、HTTP から HTTPS へのリダイレクトと、HTTPS から HTTP へのリダイレクトが同時に設定されている場合にループが発生します。CDN やロードバランサーの設定と Web サーバーの設定が競合するケースも多く見られます。<% if (typeof amazonTag !== 'undefined' && amazonTag) { %><a href="https://www.amazon.co.jp/s?k=Web%20サーバー%20トラブルシューティング&tag=<%= amazonTag %>" target="_blank" rel="nofollow noopener noreferrer" class="amazon-inline-link">Amazon の関連書籍</a><% } else { %>Amazon の関連書籍<% } %>も参考になります。
リダイレクトループの診断には、curl コマンドの「-v -L」オプションが有効です。リダイレクトの各ステップを表示し、どの URL 間でループが発生しているかを特定できます。ブラウザの開発者ツール (Network タブ) でも同様の確認が可能です。
予防策として、リダイレクトルールを追加する際は、既存のルールとの競合がないことを事前に確認しましょう。特に、ワイルドカードを使用したリダイレクトルールは意図しないループの原因になりやすいため、慎重に設定する必要があります。<% if (typeof amazonTag !== 'undefined' && amazonTag) { %><a href="https://www.amazon.co.jp/s?k=Web%20運用%20監視%20入門&tag=<%= amazonTag %>" target="_blank" rel="nofollow noopener noreferrer" class="amazon-inline-link">Web 運用と監視の入門書</a><% } else { %>Web 運用と監視の入門書<% } %>も役立ちます。