SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 社員募集 ...

【Apache】allowEncodedSlashes %2Fが入っているURLに対する動作の設定

Apache のモジュール mod_rewrite で、あからさまに動的なページに見えるURLを、静的ページっぽいURLにすることができます。

item/1234/5/6.html

とアクセスされると、内部的には

item.php?code=1234&color=5&size=6

で処理できるような機能です。

そんなrewriteなどしていると時々やりますが、item/1234/5%2F6.html とアクセスするとどうなるでしょうか。(%2Fは / の urlencode したもの)

Apacheのデフォルトの設定では %2Fが入っているURLは拒否します。
 → 404 Not Found

このパス分離文字に対する動作を設定するのが allowEncodedSlashes ディレクティブ。

デフォルトは allowEncodedSlashes off。
allowEncodedSlashes on に設定することで、

item/1234/5%2F6.html

こんなURLも門前払いしないでちゃんと取り扱うようになります。

関連するメモ

コメント