web-dev-qa-db-ja.com

Bloggerブログの特定の投稿の301リダイレクト?

Bloggerの特定の投稿(すべてではない)に301リダイレクトを実装するにはどうすればよいですか?

4
Brij

Bloggerインターフェースの[設定›検索設定]に新しいオプションが1つ追加されました。

詳細 ここ 、次のようになります。

enter image description here

注意事項

  • ドメイン外へのリダイレクトを許可していないようです
  • リダイレクションのメカニズムがHTTPの意味で何であるか明確ではありません(ただし、簡単に見つけることができます)

更新:「永続的な」リダイレクトを指定できるようになったようです。これを示すために画像を更新しました。

5
el2iot2

これができないと確信しています。あなたの唯一のオプションは、次のようなテキストを持つJavaScriptリダイレクトです。

この投稿のURLは http://example.com/post12 に変更されました。ブックマークを更新してください。 10秒後にこのページにリダイレクトされます。

マイクロソフトのような企業がこの種のページを利用しているのを見てきました。

更新:このようなページ を使用してAppleの例を見つけました。

2
Senseful

Googleを含む一部の検索エンジンは、指定された更新遅延が短い場合、「メタ更新」を301リダイレクトと同じように処理すると噂されています。メタリフレッシュは、他に リダイレクトオプション が利用できない場合、最終手段として実装できます。

メタリフレッシュは次のようになります。

<meta content='0;url=http://newblog.blogspot.com/post.html' http-equiv='refresh'/>

検索エンジンがこのメタタグを考慮するために:

  1. このタグは<head>セクション内に配置する必要があります
  2. 遅延は0〜5秒と小さくする必要があります

Bloggerでは、[テンプレート]> [HTMLの編集]を使用してブログのヘッドセクションを編集できます。 Bloggerでは、サーバー側のスクリプトを少し作成することもできます。したがって、ブログのヘッドセクションにメタリフレッシュを挿入することができます。ページURLがhttp://oldblog.blogspot.com/post.htmlの場合のみ。

この投稿 は、data:blog.pageNameというブロガー変数の値を確認することにより、カスタムタイトルタグを挿入する方法を示しています。同様に、ブロガー条件付きb:ifおよびブロガーテンプレート変数data:blog.urlを使用して、要求されたページのURLを確認することにより、カスタムメタタグを挿入できます。

<b:if cond='data:blog.url == &quot;http://oldblog.blogspot.com/post.html&quot;'>
<meta content='0;url=http://newblog.blogspot.com/post.html' http-equiv='refresh'/>
</b:if>

Bloggerテンプレート変数の完全なリファレンスは こちらから入手可能 です。

編集:

これを私のブログに適用しましたが、実際に機能しました。 Googleウェブマスターツールは、新しいブログの[サイトへのリンク]セクションで古いブログへのリンクを報告します。

2
Salman A

完全な答え

Khusnul Khotimahによる投稿 から、私自身の観察結果を追加しました)

OldPostURL-AOldPostURL-B、およびOldPostURL-Cのアドレスに3つの投稿があるブログがあり、それぞれ2秒の遅延でNewPostURL-ANewPostURL-B、およびNewPostURL-Cにリダイレクトするとします。次に、テンプレートに次のコードを挿入する必要があります<head>タグの直後に

<b:if cond='data:blog.url == "OldPostURL-A"'>
<meta http-equiv="refresh" content="2; url=NewPostURL-A" />
</b:if>

<b:if cond='data:blog.url == "OldPostURL-B"'>
<meta http-equiv="refresh" content="2; url=NewPostURL-B" />
</b:if>

<b:if cond='data:blog.url == "OldPostURL-C"'>
<meta http-equiv="refresh" content="2; url=NewPostURL-C" />
</b:if>

新しいURLは、ブログ内でもブログ外でもかまいません。

NB:これは、リダイレクトするブログfromが「レイアウト」が、古い「クラシック」テンプレートを使用している場合はnot。 「クラシック」Bloggerは「b:if」タグを理解しないため無視し、「cond」はalwaystrueとして扱われます。したがって、「クラシック」テンプレートで一連の条件付きリダイレクトを使用しようとすると、lastリダイレクトで指定されたURLが適用され、allブログのページはそのURLにリダイレクトされます(おっと!)。 「クラシック」Bloggerが<ItemPage>内の<head>タグを尊重するという事実を活用することで、この動作を変更できます。ただし、リダイレクトするアイテムページが複数ある場合、問題は解決しません。テンプレートを「レイアウト」に「アップグレード」する必要があります。

はい。リダイレクトコードは、<head>タグの直後にすぐに挿入する必要があります。間にある他のコードは、リダイレクトコードがコメント内にないことを確認したと思っている場合でも、リダイレクトコードが機能しないようにすることができます!

this old blog (投稿が移動された場合、タイトルをクリックすると自動リダイレクトが開始されます)のリダイレクトされた投稿に、このトリックを(1秒遅れで)使用しました。

1

これを行うためにBloggerが提供する簡単な機能はないと思います。ただし、Bloggerを使用したブログがカスタムドメイン(something.blogspot.comではない)にある場合、これを行う間接的な方法があります(注意:非常に実験的。理論的には正しいかもしれませんが、実際に試されました)

  1. 構成を適切に制御できるWebサーバーをセットアップします。
  2. WebサーバーがリッスンしているIPアドレスを指すように、顧客ドメインのDNS設定を変更します。
  3. IPアドレスと、Bloggerブログ用にGoogleが提供するIPアドレスとの間にリバースプロキシを設定します。 これで、すべてのブログトラフィックは、管理下にあるWebサーバーを介してプロキシされます
  4. 必要に応じて、選択したURLに対して301リダイレクトを実行するようにWebサーバー設定を変更します。
0
user8445