CGI : url-encode : mod_rewrite : スラッシュ

昨日([id:lethevert:20070508:p3])の件だけど、スラッシュが入っているとダメみたい。
もう少し検討する。

      • -

スラッシュはだめだった。

http://localhost:8090/view/sla%2Fsh

しかし、はてなやシャープはOKだった。

http://localhost:8090/view/ques%3Ftion
http://localhost:8090/view/sha%23rp
      • -

RewriteRuleを変えたら動作が変わった。
今は、下のようになっていたのだけれど、

        RewriteRule ^(.*[^/])$ /${escape:$1}/ [R,L]

これによって、URLが

http://localhost:8090/view/ques%253Ftion/
http://localhost:8090/view/sha%2523rp/

のようになっていて、こうなっていたときには、OKだったが、
次のように変更すると、

        RewriteRule ^(.*[^/])$ /$1/ [R,L]

はてなのほうが

http://localhost:8090/view/ques/?tion/

に変わってしまった

      • -

もしかして、URLに書くときは、url-encodeを2重にかけてやらないと上手くいかないのだろうか?

      • -

どうやらそうらしい。