私はリロードなしで (PHP と AJAX を使用して) jquery ナビゲーション ベースのサイトを構築してきましたが、最近、ページの「戻る」、「進む」、「リロード」機能と SEO の使いやすさの問題に遭遇しました。
--このセクションをスキップして、質問に直接進みます--
私のサイトは現在(AJAXを使用していませんが)、いくつかの「コンテンツ」divを持つ単一のindex.phpをロードしています。そのうちの1つは表示され(class = "active")、他は表示されません。ユーザーがナビゲーション リンクをクリックすると、素敵なアニメーションがコンテンツ div を切り替えます。
次のようなものをマップするためにApacheを書き直しました
http://mysite.com/about
に
http://mysite.com/index.php?page=about
「about」セクションはデフォルトで表示されるセクションになります(他の「コンテンツ」divは非表示になっています)。このパラメーターに基づいて、ページの適切なメタ タグを含めます。私のサイトマップには mysite.com/about と mysite.com/blog があるので、それらは別のページとしてインデックスされます。
しかし、私は最近、これを ajax ベースにすることに決めました。これは、より多くのコンテンツを組み込む予定であり、すべてのコンテンツを 1 つのページにロードするのはばかげているからです。
注: 現在、Smarty テンプレートも実装しています。
ハッシュタグを実装することにしましたが、固有の SEO の問題を見て、hashbangs (wth?!) を発見し、history.pushState()とHistory.jsで新しい HTML5 のものを見つけて、それを使用することにしました。
ここで主な質問が来ます
ajax を使用してコンテンツ div にページ テンプレートをロードするページが 1 つしかない場合、history.pushState() を使用して URL を変更し、mod_rewrite と PHP バックエンドを使用して、次のような直接要求の場合にデフォルトのコンテンツ テンプレートを提供できます。 "mysite.com/about" (mysite.com/index.php?page=about) (基本的な使いやすさと SEO のため)、2 つのテンプレート (コンテンツ テンプレート) とメタがない限り、直接要求のメタ コンテンツを設定することもできません。テンプレート?これを回避する別の方法はありますか?
タグは<title>
、<meta name="description">
特にテンプレートを用意することを保証するのに十分重要ですか?
要約すると、特定の ajax がロードされたページ コンテンツ テンプレートの正しいタイトルとメタ説明を使用して、素敵な mod_rewrite URL を Google に表示する必要があります。
編集
私は、hypem.comで彼らが行っていることとほぼ同じことを目指しています。<title>
新しいコンテンツがリストされたときにタグを変更するイベントリスナーがあります。それらは正しい<meta name="description">
タグも提供しますが、それがブログなどのメイン ページの 1 つへの直接のリクエストである場合に限ります - http://hypem.com/blog/indie+today/10332などの他のページは、メインのブログ ページ、および直接要求された場合のみ