2012-05-15 66 views
0

我使用.htaccess文件到我的存檔老的aspx的url重定向到我新的PHP的網站。現在要求如下: example.com/showad.aspx?adid=1234應該是example.com/ad/getad/1234 我GOOGLE了此事,並得到了以下的htaccess規則:的RewriteCond追加查詢字符串

RewriteCond %{QUERY_STRING} ^adid=(\d+)$ 
RewriteRule ^showad\.aspx$ /ad/getad/%1 

的規則的作品,除了生成的網址是example.com/ad/getad/1234?adid=1234 我再次搜索並瞭解到,要在輸出url的末尾刪除(adid = 1234),您應該放置一個問號?在替代參數的末尾,以便規則應該是:

RewriteCond %{QUERY_STRING} ^adid=(\d+)$ 
RewriteRule ^showad\.aspx$ /ad/getad/%1? 

但它不起作用! 生成的網址仍然是原始查詢字符串追加到它。我正在使用這個網站來測試我的htaccess規則:htaccess.madewithlove.be 任何線索爲什麼會發生這種情況?

+0

我沒有看到這條規則將如何做一個重定向沒有'[R]'標誌?第二個代碼應該可以工作。 – Gerben

回答

0

試着改變你的規則

RewriteRule ^showad\.aspx$ /ad/getad/%1? [R=302,L] 
+0

'RewriteRule's只處理斜線後面的部分 - 域之後的斜線不應該被匹配或重寫。 – Ansari

0

你的規則是好的 - 我只是測試它在我自己的.htaccess。這是htaccess的測試網站這是錯誤的:)

+0

你試過在你的服務器上實際運行這個嗎? – Ansari