• 締切済み

ApacheのRewriteRule

現在、ApacheのRewriteRuleにてちょっと困っています。 例 RewriteRule ^hoge/(.*)/(.*)/ /hoge.php?$1=$2 [L] という感じで、記述しています。(実際はもっとちゃんと書いていますが) これは、URLの静的化としての対応です。 想定としては、第1引数にクエリのキー 第2引数に値といった感じで考えているのですが %2Fが入ってきたときにうまく動作しません。 %2Fは「/」ですね たとえば、こんなURLがあったとします。 /hoge/q/aaa%sFbbb/ というアクセスがあったとき、上記例にてマッチしないみたいです。 (たぶん内部的に、/hoge/q/aaa/bbb/ってアクセスになってるぽい?) このような場合の対処法ってないのでしょうか? 一応ですが、RewriteMapでエスケープ用のPG作って対処できそうなのですが、この手法だと現状のサーバーではできないので>< ほかに方法がないのかなぁと。。。 (RewriteMap escape int:escapeとかですね。)

みんなの回答

  • memphis
  • ベストアンサー率40% (975/2395)
回答No.1

AllowEncodedSlashesディレクティブをONにすればいいです。 ただし、apacheのバージョンが古いと使えません。

関連するQ&A

専門家に質問してみよう