SSブログ

設定ファイル上でのURLエンコードされたリクエストの取り扱い [Apache]

apache内部でリクエストURIを処理する過程で、そのURIに含まれるURLエンコードされている部分はデコードされてしまう。
これは、http://example1.com//%E3%83%86%E3%82%B9%E3%83%88 へのアクセスを http://example2.com/へリダイレクトさせようと
RedirectMatch \/%E3%83%86%E3%82%B9%E3%83%88 http://example2.com/
(※実ファイル上では改行しません)

という設定を追加してもうまくいかない。
この場合は、
RedirectMatch \/テスト http://example2.com/
と記述しないとならない。
ここで注意するのが、全角文字の文字コード。この場合はきちんとUTF-8の「テスト」を書いてやる必要がある。
不安な場合は、EUC,SJIS,UTF-8全部で書いてしまうのが確実。

こんな記述しなくて済む方法をご存知の方はこっそり教えていただけるとうれしいです。

関連ケースとして、mod_rewriteで以下の設定を行った場合も
RewriteRule ^/hoge/(.*)$ /cgi-bin/hoge.cgi?=$1 [L]
http://example.com/hoge/%E3%83%86%E3%82%B9%E3%83%88
でアクセスした場合に、$1の中身は"%E3%83%86%E3%82%B9%E3%83%88"ではなく"テスト"になってしまうが、この場合はNEフラグを書いてやれば解決する。
RewriteRule ^/hoge/(.*)$ /cgi-bin/hoge.cgi?=$1 [NE,L]


タグ:Apache
nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。