2013-11-01 57 views
0

我有一個定製的CMS,用於將所有上傳的文件存儲在/ Assets /文件夾中的網站。重寫字符串中的href鏈接

我準備將網站移動到Azure平臺,並需要一些方法來重寫網頁中的鏈接。這裏是一個流通環節是什麼樣子:

<a href="http://www.mywebsite.com/Assets/some-folder/some-sub-folder/file.doc">link to file</a> 

你有什麼建議是改變這些鏈接的東西是最好的辦法:

<a href="https://azuresubdomain.blob.core.windows.net/assets/file.doc">link to file</a> 

有與噸的鏈接頁100的。另外,要在工程中投擲扳手,並非所有鏈接都位於資產文件夾內的子文件夾中。

有些鏈接是這樣的:

<a href="http://www.mywebsite.com/Assets/some-folder/file.doc">link to file</a> 

建議,歡迎,我接受任何事情,正則表達式,htmlagilitypack或純老,但與string.replace我似乎無法讓我的身邊怎麼做頭它...

+0

我認爲這將是最好的,如果你至少試圖想出一個解決方案,然後再問,當你面臨具體問題時。當然,我可以編寫一個遍歷所有文檔並更改鏈接的perl腳本,但這不是我的工作,它是你的。 – Vince

+0

鏈接是否實際編碼爲CMS中的絕對URL?即http://www.thatwasdumb.com/somelink或像/ somelink這樣的相關鏈接? – viperguynaz

+0

他們被編碼爲相對ie/Assets/somelink – user2682322

回答

0

您應該看看安裝在Azure Web角色上的IIS Url重寫模塊。

http://www.iis.net/learn/extensions/url-rewrite-module/using-the-url-rewrite-module

基本上,它允許您定義使用正則表達式和輸出中的網址,只要你喜歡的圖案。在你的情況下,將blob存儲中的嵌入式鏈接重新寫入它們的位置會很簡單。

+0

是的,我已經看過,但在正則表達式不好。 – user2682322

+0

夠公平的,但你在問題中說過你對任何東西都是開放的,包括Regex :) – chrislewisdev

0

沒關係,我已經排序了,感謝您的評論。如果有人感興趣,我做了一個搜索&替換數據庫上的SQL查詢。