web-dev-qa-db-ja.com

301リダイレクトを介してURLを移動し、ページのFacebookの「いいね」とOpen Graph情報を保持するにはどうすればよいですか?

og:urlメタタグが開いているグラフのリソースの正規URLであることを理解しています。

開いているグラフでの位置を維持しながら、リソースの301リダイレクトをサポートしたい場合、どのような戦略を使用できますか? URLを変更したので、いいねを失いたくありません。

これを行うための最良の方法は、コンテンツの元のURLを保存し、それを参照することですか?これに対処するための他の戦略はありますか?

明確にするために-私はページを持っています:

/page1og:urlhttp://www.example.com/page1

/page2への301リダイレクトを使用して、それをhttp://www.example.com/page2に移動したいと思います。

og:urlメタを/page1に設定する以外に、いいねやコメントが失われないようにするオプションはありますか?

30
timmow

簡単に言えば、できません。

オブジェクトがFacebook側で作成されると、Facebookのグラフ内のURLが修正されます。「いいね」とコメントはそのURLとオブジェクトに関連付けられます。将来そのオブジェクトを維持するために、FacebookのクローラーがそのURLにアクセスできるようにする必要があります。 (オブジェクトにアクセスできなくなっても、必ずしもFacebookから削除されるわけではありませんが、事実上、最初からやり直すことになります)

私がここで通常お勧めするのは(例_http://www.example.com/oldurl_と_http://www.example.com/newurl_)です:

  • / newpageで、og:urlタグが/ oldurlを指すようにします
  • / oldurlから/newurlへのHTTP301リダイレクトを追加します。
    • Facebookクローラーをこのリダイレクトから除外します
    • リクエストがFacebookクローラーから送信された場合は、_http://www.example.com/oldurl_のページのメタタグを引き続き提供します。
    • 実際のコンテンツをクローラーに返す必要はありません。適切なタグが付いた単純なHTMLページだけです。

したがって:

  1. Facebook上のオブジェクトの既存のインスタンスをクリックすると、リダイレクトを介してユーザーが正しい(新しい)ページに移動します
  2. (新しい)ページの「いいね」ボタンは、正しいオブジェクトの「いいね」を生成します(ただし、古いURLで)

多くのURLを移動したり、URLスキームを完全に書き直したりする場合は、新しい記事や製品などに新しいURLを使用する必要がありますが、いいね、コメント、古いコンテンツなど。

これには、ドメインを変更する場合も含まれます。

ここでの唯一の問題は、コードのどこかに古いURL->新しいURLマッピングを維持することですが、技術的に難しいことではなく、将来維持するための追加のことです。

ところで、FacebookクローラーUAは現在facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)です

50
Igy

古いサイトでも同じ問題が発生しています。ドメインが変更され、管理者がseoなどのURLを変更したい

私は、Facebookのためだけにdbにある種の一意のIDを持っていることが最善であると結論付けました-最初から。たとえば記事の場合、myurl.com/a/123があります。123は記事のIDです。

実際のURLはmyurl.com/category/article-titleです。その後、記事を別のカテゴリに分類したり、名前を変更したりすることができます。その背後には、301リダイレクトの広範なロジックがあります。しかし、基本的なfb識別子は永遠に同じままでいられます。

もちろん、これは新しいサイトから始めるとき、または初めてfbコメントを実装するときにのみ実行可能です。

あなたが前もって計画を立てることができるかどうかだけのアイデア:)あなたの考えを教えてください。

0
Miha Trtnik