AllowEncodedSlashes 「%2F」で404エラー
mod_rewrite で値を渡す時に「%2F」が含まれていると404エラーになった。
これは Apache がリクエストされたURLに「%2F」が含まれていたら強制的に404を返すようになっているのが問題です。
この症状を改善する設定が Apche には存在します。
それが「AllowEncodedSlashes」です。
(Apache 2.0.46 以降で使用可能)
(詳しくは参照リンクをご覧下さい)
デフォルトではこの機能がオフになっています。
オンにするにはサーバ設定ファイル(httpd.conf)へ以下の設定を追加します。
AllowEncodedSlashes On
バーチャルホストで運営している場合は以下の様に設定を追加します。
<VirtualHost *:80> SuexecUserGroup * * ServerAdmin *@*.jp DocumentRoot /home/*/public_html ServerName *.*.jp AllowEncodedSlashes On </VirtualHost>
※「AllowEncodedSlashes」は共有サーバにおいて若干セキュリティ面の問題あり。
※そんな訳でFYAではサポートしていない機能です。
※FYAにおいては「%2F」のみスクリプト側で二回URLエンコードするなどで対処下さい。