Home > Apache | PHP > mod_rewriteの「%2F」問題の解決法

mod_rewriteの「%2F」問題の解決法

 いや~、はまったはまった。。。

 mod_rewriteを使った場合にクエリーに「%2F」が含まれていてうまく動かない場合の解決方法です。

 PHPで以下のようなスクリプトをくんだとします。

index.php
<?php
echo $_GET["pre"];
echo $_GET["path"];
?>

そして、

 以下のように「.htaccess」にmod_rewrite構文を設定していたとします。

RewriteEngine On
RewriteRule ^hiroshima/(.*)$ index.php?pre=hiroshima&path=$1 [L]

 ここで、「http://*******/hiroshima/aiueo/」にアクセスすると、きちんとアクセスできます。

 この場合、mod_rewriteによって実際には、「http://****/index.php?pre=hiroshima&path=aiueo」にアクセスします。

 しかし、

http://*******/hiroshima/aiueo%2Fkakikukeko/

 にアクセスすると、うまくアクセスできなくなってしまいました。

 mod_rewriteによって、

http://****/index.php?pre=hiroshima&path=aiueo%2Fkakikukeko

というURLに実際にはアクセスするのですが、「%2F」、つまりは「/(スラッシュ)」をURLエンコードした文字列を含む場合、うまくデコードしてくれないようなのです。

 この解決方法としては、

 

Comments:0

Comment Form
Remember personal info

Trackbacks:0

Trackback URL for this entry
http://www.multiburst.net/ElectricBrain/2008/10/mod_rewrite2f/trackback
Listed below are links to weblogs that reference
mod_rewriteの「%2F」問題の解決法 from ElectronicBrain is eating BreakFast

Home > Apache | PHP > mod_rewriteの「%2F」問題の解決法

Recent Posts
Sponsored Link
Recent Comments
Recent Trackbacks
楽天AD
Amazon
BlogParts
あわせて読みたいブログパーツ
フィードメーター - ElectronicBrain is eating BreakFast

Return to page top