具有多个参数的字符串的常规重写规则

时间:2014-10-06 10:56:07

标签: regex apache .htaccess mod-rewrite

我有以下网址: mysite.co.uk/productdetails.asp?pid=434&cid= 在这种情况下,cid没有值,但我确实有一些包含值。

我有以下重写规则:

RewriteCondition %{QUERY_STRING} ^productdetails.asp?pid=([0-9]+)&cid=([0-9]+)
RewriteRule ^productdetails\.asp$ /index.php? [R=301,L]

因为我希望任何带有这些参数的字符串重写为index.php  如果我这样做,我会收到404错误

The requested URL /productdetails.asp was not found on this server.

欢迎任何帮助

1 个答案:

答案 0 :(得分:0)

QUERY_STRING只能匹配没有REQUEST_URI的查询字符串。

RewriteCondition %{QUERY_STRING} ^pid=[0-9]+&cid=[0-9]+ [NC]
RewriteRule ^productdetails\.asp$ /index.php? [R=301,L,NC]