0

我想将 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 /
4

1 回答 1

1

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

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

于 2012-09-05T22:45:33.567 回答