2012-07-18 84 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