10

URL 形式http://www.example.com/module/contentを持つ Web ページを作成しました。 これは非常に動的な Web ページであり、実際には Web アプリケーションです。

可能な限りレスポンシブにするために、通常のページ要求の代わりに AJAX を使用したいと考えています。これにより、JavaScript を使用してレイヤーを追加し、オフライン機能を提供することもできます。

私の質問は次のとおりです。URL はどのように作成すればよいですか? それらはhttp://www.example.com/module/contentまたはhttp://www.example.com/#!/module/contentである必要がありますか?

以下は、両方向の私の考えです。これについてすでに明確な考えがある場合は、読む必要はありません。

新しい HTML5 標準に対応したいので、最初のバージョンを使用したいと考えています。使いやすく、URL も見栄えがします。しかし、もっと重要なことは、これを行うことができるということです:

ユーザーがページを要求すると、完全な HTML ページが返されます。

ユーザーがリンクをクリックすると、コンテンツのみが AJAX 経由でコンテナー div に挿入されます。

これにより、JavaScript を使用していないユーザーが私の Web サイトを使用できるようになります。JavaScript を使用する必要がないため、単純に古い「リンクをクリックしてリクエストし、HTML ページ全体を取得する」アプローチを使用するだけです。

これは素晴らしいことですが、問題はもちろん Internet Explorer にあります。IE の最新バージョンのみが履歴 API をサポートしており、これを古いバージョンで機能させるには、ハッシュタグを使用する必要があります。(私のユーザーの 50% は IE を使用することになるので、サポートする必要があります...) そのため、/#!/ を使用して動作させる必要があります。

これらの両方の URL バージョンを使用すると、IE ユーザーがこのリンクを Web サイトに投稿すると、Google がサーバーに _unescaped_string (または類似の文字列) を送信するという問題が発生します。ハッシュタグ。また、一部のページにはハッシュタグがありません。

そして、私たちが覚えているように、非ハッシュタグは多くの異なる点で優れています. では、この検索エンジンの問題は回避できるのでしょうか? ウェブサイトのハッシュタグ バージョンに到達している場合、ウェブページの非ハッシュタグ バージョンにリダイレクトする必要があることを GoogleBot に伝えることは可能ですか? このようにして、非ハッシュタグ URL の利点をすべて享受しながら、IE6-IE9 をサポートすることができます。

最善のアプローチは何だと思いますか? 多分あなたは実際にそれを自分で試しましたか?ご回答有難うございます!

4

3 に答える 3

9

Google に Ajax コンテンツのインデックスを作成してもらいたい場合は、次のように #!key=value を使用する必要があります。これは、Google がAjax ナビゲーションに好んで使用するものです。

#! それなら、はい、インデックス作成の問題なしに両方をサポートできます! 追加するだけです:

<link rel="canonical" href="preferredurl" />

各ページの<head>セクションに(初期ロード用に)追加することで、Google がどのバージョンの URL をインデックスに登録したいかを認識できるようにします。正規 URLの詳細については、こちらをご覧ください。

于 2012-11-03T01:12:22.440 に答える
2

その場合、解決策は非常に簡単です。最初の URL スキームを使用し、古い IE ブラウザー用の AJAX 拡張機能を使用しません。

大切なユーザーがアップグレードを望まない場合、それは彼らの問題ですが、これらのキュール効果とダイナミクスがないことに不満を言うことはできません.

「お使いのブラウザは非常に古いです!」をスローできます。レガシーブラウザにも注意してください。

于 2012-11-02T23:08:31.153 に答える
1

/#!/URLでは使用しません。最初に、ページ全体のリクエストを使用して、ページが正常に機能することを確認します (これは簡単なはずです)。それが機能したら、オブジェクトを確認し、window.history存在する場合は AJAX を追加します。AJAX 呼び出しは同じ URL にアクセスできますが、主な違いはサーバー側の処理です。チェックは簡単です。HTTP_X_REQUESTED_WITHが設定されている場合、リクエストは AJAX リクエストであり、設定されていない場合は、標準のリクエストを処理しています。

HTTP_X_REQUESTED_WITHGoogleBot はリクエスト ヘッダーを設定しないため、コンテンツの重複について心配する必要はありません。

于 2012-11-03T14:07:23.813 に答える