2013-10-17 51 views
0

這應該很簡單,但我一直無法解決問題。我相信這對於某人來說是一個秒鐘的答案。?在htaccess文件中重定向301之後附加到路徑名的末尾

我在我的htaccess的文件重寫如下:

RewriteCond %{THE_REQUEST} \ /product\.php\?categoryfilename=([A-Za-z0-9-%.]+)&category=([A-Za-z0-9-%.]+)&id=([A-Za-z0-9-]+) 
RewriteRule^/%3-P.html? [R=301,L] 

重寫工作 如果我輸入:

www.mysite.co.uk/product.php?categoryfilename=all-products.php&category=All%20products&id=MY-PRODUCT 

它重定向到:

http://www.mysite.co.uk/MY-PRODUCT-P.html 

然後我有什麼應該是一個簡單的重定向:

重定向301 /MY-PRODUCT-P.html http://www.mysite.co.uk/MY-PRODUCT-123-P.html

這應該是一個靜態重定向,但它附加一個麻煩?到結果的結尾。

如果我刪除?從重定向結束之後我讓PHP變量附加從原來凌亂的路徑名遺留在第一重寫規則

非常感謝

+0

請使用正確的術語。您正在重寫FROM /name-P.html TO /product.php?var=val&var=val&var=val等。「外部世界」的靜態URI客戶看到的是/name-P.html,以及您的PHP的動態URI代碼看到/product.php?... –

回答

0

不能匹配或使用Redirect指令操縱QUERY_STRING。改用mod_rewrite。將此代碼放入您的DOCUMENT_ROOT/.htaccess

RewriteEngine On 

RewriteCond %{THE_REQUEST} \s/product\.php\?categoryfilename=([^&]*)&category=([^&]*)&id=([^&\s]*) 
RewriteRule^/%3-P.html? [R=301,L,NE] 

RewriteRule ^(MY-PRODUCT)-(P\.html)$ /$1-123-$2? [L,NC,R=301] 
+0

嗨,我真的很抱歉。在我的問題中,我寫了完全錯誤的代碼行。昨天晚上我正在做這件事,今天早上起牀繼續。我害怕累了眼睛。正確的代碼行現在在問題中! – user2886540

+0

好的,讓我通過並回應。 – anubhava

+0

立即查看更新的代碼。 – anubhava