リダイレクトループ

リダイレクトループ

ホームページを作成する際などにはリダイレクトなどを用いることもあるでしょうが、リダイレクトがループしないように注意を払って使用する必要があります。同じページにリダイレクトしてループするということは殆ど無いと思いますがいくつかのページをループしてしまうことはサーバーの状態などによって起こる場面があるので解決策を想定しておくと防ぐことが出来ます。リダイレクトループがおこることによってサーバーへの負荷が増えることやユーザーがアクセス出来なくなってしまうなどの問題点があります。例えばリダイレクト先のサーバーからのレスポンスがない場合、もう一度リダイレクト用のページに戻ってきてしまうとリダイレクトループが起こってしまいます。

解決策

requestにパラメータを保持し、何回目のリダイレクトなのかを判別するなどの方法などで実装したいと考えましたが、リダイレクト用のURLに戻ってきた場合、requestは作り直されてしまうとの事だったのでその方法は再現出来ませんでした。
実装方法などとしてはCookieに回数や時間などの情報を保持してループから抜けるロジックを組んでおくのがいいと思います。回数だとリセットをかける場所が大変になりそうなので時間で管理したほうが楽ではありそうです。