【发布时间】:2012-04-14 16:12:30
【问题描述】:
我正在尝试使用 mod_rewrite RewriteRule,并且在我的 RewriteRule 中,我正在尝试匹配具有如下查询字符串的 URL:
http:///myfakeoam/obrareq.cgi?....
我的 RewriteRule 看起来像:
重写引擎开启
RewriteCond %{QUERY_STRING} ^wh=(.*)$ [NC]
重写规则 ^/myfakeoam/obrareq.cgi$ http://apache1.whatever.com/formbasicprotected/index.html [CO=wh:%1:.whatever.com:1440:/]
当我手动测试时,通过在浏览器中手动输入 URL,如果请求看起来像这样,那么 RewriteRule 似乎能够匹配请求:
http:///myfakeoam/obrareq.cgi?wh=xxx&ru=yyyy&....
但是,在我的实际系统中,请求是由另一个应用程序创建的,它似乎是 URL 编码(实际上是 URL 编码两次)查询字符串(例如,替换为“%3D”等。 ),即:
http:///myfakeoam/obrareq.cgi?wh%3Dxxx....
如果查询字符串部分是 URL 编码的,我的 RewriteRule 中的模式匹配没有失败......
有没有办法处理这种情况?
谢谢, 吉姆
【问题讨论】:
-
我猜另一个应用程序对查询字符串进行双 URL 编码的原因是因为这样的事情 (blog.perplexedlabs.com/2008/03/20/…)?但是,我可以制作一个适用于该传入请求的 RewriteRule 吗?吉姆
标签: mod-rewrite