htaccess:为什么这不起作用?

时间:2009-06-25 10:36:34

标签: .htaccess mod-rewrite

当我在htaccess中尝试以下规则时出现404错误页面:

RewriteRule ^Test\?service=(.*) test.php?foo=$1 [NC,L]

怎么回事?

我知道最好使用像 ^ Test /(.*)test.php?foo = $ 1 [NC,L] 这样的东西,但在这种情况下我更喜欢它我说的方式。

提前谢谢。

1 个答案:

答案 0 :(得分:1)

RewriteRule仅检查URL path。但是查询(从第一个?到第一个#的部分)不是URL路径的一部分。只能使用RewriteCond directive

进行检查
RewriteCond %{QUERY_STRING} ^service=(.*)
RewriteRule ^Test$ test.php?foo=%1 [NC,L]