私は、現時点では類似した何かをして(それが痛いと血まみれだ)ジャンゴの実行時にに巨大な静的なHTMLストアを移行しています。
私たちのソリューションは特に優雅ではありません。各ページの移行中に、古いURL、新しいURLに注目してリダイレクトデータベースに追加します。私たちはからリダイレクトを引き上げ
//a/@href
//img/@src
次へ:私たちは新しいバックエンドとURL構造への私たちのすべてのコンテンツを移行したら、我々はこれらのXPathセレクタでドキュメント内のすべてのリンクを特定するスクリプトを実行していますリダイレクトテーブルを作成し、リンクを以下の正規表現に置き換えます。
1)に、文書内のすべてのリンクを比較することにより:今
#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.
この方法は、あなたが好きな、もう少し先行準備が必要になりますよりも、おそらくより多くの仕事がある一方で
は、それは2つの利点がありますリダイレクトテーブルを使用すると、不足しているページや欠落しているリダイレクトを簡単に特定できます。
2)SEO。googlebotにサイト全体を再クロールする代わりに、リダイレクトテーブルに対して301のリダイレクトを提供するだけです。
質問がある場合はお知らせください。
に感謝します。確かに私たちのために行く方法のようにも見える。必要に応じてpingを実行します。再度、感謝します。 – Vinayak