2010-01-08 39 views
0

我使用下面的規則來念想URL重寫和RSS(FeedBurner的)問題

網址的網址: http://www.example.com/blog/sampe-post-title/10004/

規則:

RewriteRule (.*)/(.*)/([0-9]+)/$ $1/details.asp?mod_id=$3 [NS,I] 

一切都很好,直到我發現通過feedburner發送的鏈接不再工作。由於Feedburner的增加了一些額外的參數的URL統計/跟蹤等

例如www.example.com/blog/sampe-post-title/10004/?utm_source=feedburner & utm_medium =電子郵件& utm_campaign =飼料: + somesite +(my + feed)

我的重寫URL無法識別上述URL。任何想法如何處理它?

回答

2

嘗試添加規則來進行的FeedBurner網址:

RewriteRule (.*)/(.*)/([0-9]+)/\?(.*)$ $1/details.asp?mod_id=$3&$4 [NS,I] 

我增加了額外的正則表達式組在最後的問號後,捕捉一切,並把它mod_id後。如果你只是因爲某種原因想要制定一條規則,你可以將它與你的其他URL結合起來,但你可能只有兩條。

+1

這就是正確的,用它 – 2010-01-08 12:09:43

+0

謝謝...它工作正常現在 – 2010-01-08 12:37:48

+0

URL查詢是不URL路徑的一部分。所以你不能用'RewriteRule'來測試它,因爲它只能在URL路徑上運行。您需要'RewriteCond'指令來執行此操作。 – Gumbo 2010-01-08 13:23:33

0

嘗試使用QSA標誌可以自動將原始請求的URL查詢附加到新的請求。

0

我設法弄清楚自己的答案:只需用.*代替結尾$就是這樣!

下面是修改後的規則:

RewriteRule (.*)/(.*)/([0-9]+)/.* $1/details.asp?mod_id=$3 [NS,I]