我的查询字符串是重定向吗?

时间:2012-09-05 22:36:58

标签: .htaccess redirect get

我想将mypage.com/store/index.php?product_id=62&thisvar=doesntmatter重定向到mypage.com/store#page-anchor。我当前的重定向看起来像这样,但似乎没有做任何事情。我做错了吗?

RewriteCond %{QUERY_STRING} ^([^&]&)*product_id=62(&|$)
RewriteRule ^/store/index\.php$ /store#page-anchor [R=301,L]

编辑:我应该注意在重写规则之前我有以下几行:

RewriteEngine On
RewriteBase /

1 个答案:

答案 0 :(得分:1)

([^&]&)*位看起来不太合适。它匹配像“a& b& c&”这样的字符串(一对非&字符和&重复任意次数),这可能不是你想要的。我想你想写([^&]*&)*,但我建议(^|&)product_id=62(&|$)(为了安全,可读性和优雅)。

哦,如果它在.htaccess(而不是你的httpd.conf)中,RewriteRule中的模式应该是一个相对URI,即它不应该以{{1​​}}开头。