2012-07-18 78 views
0

我想简单地创建301重定向,但我的代码不起作用并返回一个美丽的404页面(-_-)。带有301 htaccess重定向的小“hic”

我认为问题是“?”在从URL,我试图逃脱它,但它不工作了。

RewriteRule ^produit.php?PDT_ID=473 /product.php?id_product=210 [R=301] 

由于看一看

回答

1

这是一个常见的错误。作为docs说,以测试查询字符串的事情,你需要使用一个RewriteCond指令,如:

RewriteCond %{QUERY_STRING} PDT_ID=473 
RewriteRule ^produit.php /product.php?id_product=210 [R=301] 

这意味着“如果查询字符串模式‘PDT_ID = 473’匹配,以及模式匹配uri,然后重写“。请注意,您可能想要使rewriteCond的正则表达式更加简单,以确保它不会像APDT_ID = 4735那样匹配,但这会让您开始。

+0

非常感谢你:d – JojoLapin45 2012-07-18 14:33:24

+0

我只是改变你的代码添加$ 的RewriteCond%{QUERY_STRING} PDT_ID = 473 $ 重写规则^ produit.php /product.php?id_product=210 [R = 301] 因为如果我用47333或473987或473000替换473 ...它总是将页面重定向到/product.php?id_product=210 – JojoLapin45 2012-07-18 15:18:31

+2

@ JojoLapin45,更好的方法是使用'\ b'分隔符'\ bPDT_ID = 473 \ b' - 这样,如果存在另一个参数,cond将仍然匹配。 – TerryE 2012-07-18 15:52:24