2011-03-06 76 views

回答

0

因为查询字符串不是URL路径的一部分,所以不能使用查询字符串(“?”字符后面的字符串)作为重写变量。

您需要修改foo.php R = OK像一些字符串路径 “foo.php /重定向/”

0

the Apache manual discussing mod_rewrite

如果要匹配反对 主机名,端口或查询字符串,分别使用 RewriteCond和%{HTTP_HOST}, %{SERVER_PORT}或%{QUERY_STRING} 变量。

仔细查看的RewriteRulesRewriteConditions

编辑:新增工作示例

正则表达式使用写这些只是纯粹的天堂< /讽刺>

任何如何...这是一个简单的规则(Apache2,Mac OS X 10.5.8)

RewriteCond $1 ^(foo\.php) 
RewriteCond %{QUERY_STRING} (r=ok) 
RewriteRule (foo\.php)  /bar.php [R] 

我测试这对于我能想到的(即R = KO,oof.php,foo.php?R = 0)的许多明显的警告,但未能打破它。

+0

我想我可以用r =%6F%66(这是'ok'urlencoded)来分解它。 QUERY_STRING是未解码的字符串。而没有办法获得解码的。 – regilero 2011-06-01 14:19:22