テクデップ(Techdep)

コンピュータ、プログラミング、DTP(InDesign)に関する備忘録

意図せざるリダイレクトの原因

Apache 2.4でとつぼにはまったのでメモしておく。

状況としてはウェブアプリケーションのパス(例:/request/list)がどうしても別のパスにリダイレクトされて、困り果てたというもの。原因としては「301リダイレクトのキャッシュ」だったが、意図せざるリダイレクトの原因としては、以下が考えられる。

  • mod_rewirte
  • .htaccess
  • DirectorySlash
  • 301リダイレクトのキャッシュ

mod_rewirteと.htaccess

設定ファイルなどにリダイレクトの設定が残ってないか。

DirectorySlashの設定

「/list」などをディレクトリへのアクセスとApacheが認識して、末尾にスラッシュを補完することがある。

301リダイレクトのキャッシュ

クライアント側に原因があることもある。ステータスコード301のリダイレクトは「恒久的な移動」なので、ブラウザにキャッシュとして残る。以後ブラウザは、同一URLへのアクセスはサ勝手にリダイレクトする*1。302のリダイレクトであればキャッシュはない。ブラウザのキャッシュを削除すれば良い。

参考文献

https://infra.xyz/archives/75

Apacheでスラッシュで終わるURLのリダイレクトを止める - Qiita

*1:サーバのアクセスログには301リダイレクトと残るから尚更判別がしづらい。