いや~、はまったはまった。。。
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エンコードした文字列を含む場合、うまくデコードしてくれないようなのです。
この解決方法としては、
Apacheの設定ファイル、「httpd.conf」に以下の分を追加します。
AllowEncodedSlashes On
これでうまくスラッシュをデコードしてくれるようです。
Similar Posts:
- VirtualHostでサイトのURLを変更。SEO効果を期待(^^;)
- RSSフィードをFeedBurnerのフィードにリダイレクト
- CakePHPをやっと始める気になったので、はまった部分をメモっておく
- クールなグラフを作成できる「Open Flash Chart」のキャッシュ問題
- PHPバッファリング関数でValidな(X)HTMLにしてやる
- 多次元配列をソートする(PHP)
- XAMPPでのMSSQL接続エラーの対処法
- 携帯版Google Adsenseのコードがいつのまにか変更になっている
- Movable Type で LPOを考えてみる(その1)
- Smartyで単純なforループを作る
- Newer: 還元ろ過BOX
- Older: イソギンチャクが次々☆に・・・・
Comments:0
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