我做的那一刻類似的東西,遷移一個巨大的靜態html商店上Django的運行(這是痛苦和血腥)。
我們的解決方案沒有任何特別的優雅。在每個頁面的遷移過程中,我們記錄了舊的url,然後是新的url,並將它們添加到重定向數據庫中。一旦我們遷移所有的內容到新的後端和URL結構,我們正在運行一個腳本,將確定所有鏈接文檔中與這些XPath選擇:
//a/@href
//img/@src
接下來我們從拉起重定向我們的重定向表,並用下面的正則表達式替換鏈接。
#escape special characters to avoid problems with the regex
link = link.replace('#', r'\#')
link = link.replace('.', r'\.')
link = link.replace('/', r'\/')
link = link.replace(':', r'\:')
#compile a regex, using the source link, and replace all existing links
repl_regex = r'href\s{0,}\=[\s\"\']{0,}(%s)[\s\"\']{0,}'%link
markup = re.sub(repl_regex, 'href="%s"'%dst_url, markup)
#repeat for images
repl_regex = r'src\s{0,}\=[\s\"\']{0,}(%s)[\s\"\']{0,}'%link
markup = re.sub(repl_regex, 'src="%s"'%dst_url, markup)
#Let me know if you have any questions, the above is written in python
#and it sounds like you're using php and a .net language.
現在,雖然這種方法可能是更多的工作比你想,也需要多一點的前期準備,它有兩個好處:
1)通過每一個環節都在文檔中進行比較的重定向表,你將能夠更容易地識別缺失頁面/丟失重定向
2)SEO。不要讓googlebot重新抓取您的整個網站,只需提供301重定向對您的重定向表
讓我知道如果您有任何問題。
沒有關係,謝謝你的詳細解答。當然看起來也是爲我們走的路。如果需要將會ping你。再次感謝。 – Vinayak 2012-01-02 02:30:03