URL変更など、mod_rewrite でURLを渡す時、「%2F」や「%5C」が含まれると404エラーが返ってくる。Apacheのデフォルト設定である。
「%2F」は「/(スラッシュ)を、%5Cは「\(バックスラッシュ)」をエンコードしたもの。
これらの文字を含んだURLで404エラーなる場合は、AllowEncodedSlashesを設定することでURLの使用可否を変更する。
httpd.confに追加する(.htaccessでは不可)
—————————
AllowEncodedSlashes on
—————————
エンコードされた「/」や「\」を含むURLの使用が許可される。
レンタルサーバーなどでhttpd.confをいじれない場合は、「/」や「\」を二重にエンコードすることでとりあえず回避できる。
「/」を二重にエンコードする例
—————————
$url = urlencode($url); //一回目のエンコード
$url = str_ireplace(“%2f”,”%252f”,$url); //二回目。スラッシュだけエンコード値に置換。
—————————