Blogger アカウントを移行する方法について、次のように多くのことを調べました。
- 古い URL の各ブログ投稿は、新しい URL の同じブログ投稿にリダイレクトされます (たとえば
http://old-url.blogspot.com/bar
、にリダイレクトされますhttp://new-url.com/bar
)。
- SEO ランクを失わない方法でリダイレクトを行います。これは、JavaScript ソリューション (この投稿で受け入れられた回答など) が機能しないことを意味します
<link rel="canonical" href="http://new-url.com/bar"/>
。.<head>
満足のいく答えが見つからなかったので、将来他の人を助けるために、ここで思いついたハックを追加すると思いました. ハックが必要な理由は、ブロガーのテンプレートが、基本的な変数の検索、ループ、および if ステートメントを可能にする難解な XML 構文を使用しているからですが、私が知る限り、URL 変換を実現するために文字列操作を行う方法はありません。上記の要件 #1。これを回避するには、関心のあるすべての可能な URL をチェックし、適切な場所にリダイレクトする if ステートメントのハードコーディングされたリストを生成できます。次のようなもの:
<b:if cond='data:blog.canonicalUrl == "http://old-url.blogspot.com/url1"'>
<link rel="canonical" href="http://new-url.com/url1"/>
<meta http-equiv="refresh" content="0; url=http://new-url.com/url1"/>
<b:elseif cond='data:blog.canonicalUrl == "http://old-url.blogspot.com/url2"'/>
<link rel="canonical" href="http://new-url.com/url2"/>
<meta http-equiv="refresh" content="0; url=http://new-url.com/url2"/>
<b:elseif cond='data:blog.canonicalUrl == "http://old-url.blogspot.com/url3"'/>
<link rel="canonical" href="http://new-url.com/url3"/>
<meta http-equiv="refresh" content="0; url=http://new-url.com/url3"/>
<!-- And so on, one if-statement per blog post -->
基本的なスクリプトを作成できる場合は、これらの if ステートメントを手動で生成する必要はありません (何百もの場合もあります)。代わりに、Blogger の投稿を XML ファイルにエクスポートし、簡単なスクリプトを記述して、そのファイル内の各 URL を読み取り、上記の if ステートメントを生成することができます。Blogger から GitHub Pages への移行に関するブログ記事を書きました。ここでは、すべての詳細を説明しています。if ステートメントを生成するために使用した Ruby スクリプトは、GitHubで入手できます。これは私のブログ用にカスタマイズされた非常にハックなスクリプトであり、実際にはブロガー XML エクスポートの Jekyll 変換に対して実行されますが、これをベースとして使用して独自のスクリプトを作成し、多くの奇妙なブロガー テンプレート エラー メッセージを回避することができます。