2010-09-24 49 views
4

我已經閱讀了很多關於URL重寫的知識,但我仍然不明白。URL重寫如何在純英文中工作

據我所知,像

http://www.example.com/Blog/Posts.php?Year=2006&Month=12&Day=19 

一個URL可以替換一個友好的人喜歡

http://www.example.com/Blog/2006/12/19/ 

和服務器端的代碼可以保持不變,因爲有一些過濾器,其將新的URL和將它發送給舊的,但它是否也替換了響應HTML中的URL?

如果服務器代碼保持不變,那麼很可能,在我返回的HTML代碼,我有這樣的聯繫:

http://www.example.com/Blog/Posts.php?Year=2006&Month=12&Day=20 
http://www.example.com/Blog/Posts.php?Year=2006&Month=12&Day=21 
http://www.example.com/Blog/Posts.php?Year=2006&Month=12&Day=22 

這有違於漂亮的網址,如果在我的網頁我仍然有老的目的那些。

URL重寫(使用過濾器或其他東西)是否也取代HTML中的內容?

換言之...重寫規則是否適用於傳入請求以及響應的HTML內容?

謝謝!

回答

1

URL重寫器只是簡單地接收傳入的URL,如果它匹配某個模式,它會將其轉換爲服務器可以識別的URL(假設您的重寫規則正確)。

這確實意味着可以通過多種方式訪問​​特定資源,但這不會「打敗點」,因爲要點好看的網址,您仍然可以這樣做。

他們不重寫傳出內容,只傳入URL。

+0

好的,我該如何處理HTML中的hrefs?我如何更換這些? – userUMB 2010-09-24 11:31:46

+0

@userUMB - 你必須改變你的HTML,或者生成它來輸出「nice」鏈接。 – Oded 2010-09-24 11:58:34

+0

@userUMB您可以使用相對路徑([href,includes,images等])鏈接而不是絕對路徑,以避免每次更改URL重寫時更改它們。 (例如,href =「/ pages/services.html」)。圖像和其他元素也一樣。 – Codex73 2010-09-24 21:10:54