2013-12-18 149 views
2

我有一个旧页面,用于根据查询字符串显示多个产品。我想用查询字符串将URL重写为静态页面,这些静态页面与旧网址将被重写的网页不同。.htaccess用查询字符串重写URL不同页面

RewriteRule ^old.php$ new.php 

    RewriteRule old.php?product=10 different.php [R=301,L] 

在这种情况下,old.php被重写为new.php。但old.php?product = 1O会被重写为new.php?product = 10而不是不同.php

回答

2

在重写规则中,您无法匹配QUERY_STRING。您需要使用RewriteCond %{QUERY_STRING}来匹配查询字符串。

使用您的规则为:

RewriteCond %{QUERY_STRING} ^$ 
RewriteRule ^old\.php$ new.php [L,R] 

RewriteCond %{QUERY_STRING} ^product=10$ 
RewriteRule ^old\.php different.php [L,R] 
+0

太好了!非常感谢。 – asinomasimple

+0

不客气,很高兴它解决了。 – anubhava