意図せざるリダイレクトの原因
Apache 2.4でとつぼにはまったのでメモしておく。
状況としてはウェブアプリケーションのパス(例:/request/list)がどうしても別のパスにリダイレクトされて、困り果てたというもの。原因としては「301リダイレクトのキャッシュ」だったが、意図せざるリダイレクトの原因としては、以下が考えられる。
- mod_rewirte
- .htaccess
- DirectorySlash
- 301リダイレクトのキャッシュ
mod_rewirteと.htaccess
設定ファイルなどにリダイレクトの設定が残ってないか。
DirectorySlashの設定
「/list」などをディレクトリへのアクセスとApacheが認識して、末尾にスラッシュを補完することがある。
301リダイレクトのキャッシュ
クライアント側に原因があることもある。ステータスコード301のリダイレクトは「恒久的な移動」なので、ブラウザにキャッシュとして残る。以後ブラウザは、同一URLへのアクセスはサ勝手にリダイレクトする*1。302のリダイレクトであればキャッシュはない。ブラウザのキャッシュを削除すれば良い。