• 締切済み

ajaxコンテンツページのハッシュフラグメント

最近になってやっと、ajaxコンテンツページにハッシュフラグメントを付与する仕組みを知りました。 サイトによって下記のようにハッシュフラグメントの付け方が違うようなのですが、どういった意味があるのでしょうか? /#!/page_name /#/page_name #!page_name 「#!」がついているとクローラーに読み取ってもらえるのでSEOに有利ということだけ分かったのですが スラッシュで区切ったり区切らなかったりするのには意味があるのでしょうか。 「!」をつけていないページは、SEOは気にしてないけど通常のページのように振舞わせたいということなのでしょうか。

みんなの回答

回答No.1

単純に#を#!に変換しとけばクローリングされるというわけではありません。 いいだしっぺはGoogleなのですが、 クローラーが #!page_name を見つけると ?_escaped_fragment_=page_name に変換してサーバにリクエストするので、 サーバーが_escaped_fragment_の扱いに対応してなければ変更する意味がないです。 スラッシュがあるとIDとしては使えません。 クエリとしてサーバーへ送信されたりもしないので、 URLとして見た時よりそれっぽいくらいの違いしかないですね。 JavaScriptで #/foo/bar/hoge をバラしたい時に split('/') すれば ['#', 'foo', 'bar', 'hoge']となるので、スラッシュがある方が若干便利だったりします。

参考URL:
https://developers.google.com/webmasters/ajax-crawling/
nekome002
質問者

お礼

ご回答ありがとうございます。 「#!」をつけておくだけでクロール対応できるわけではないのですね。 サーバサイドでの処理が必要なんですね。間違った解釈をしていました。なるほど! 「/」がある場合はない場合と比べて違ったメリットがあるわけではなくて、 見た目がそれっぽいからという理由なんですね。 splitでバラせるのが若干便利ということですが、どういった場合に便利なのか想像がつきません(×u×;) ぐぐってみてもコレといった答えがみつからず… もしよろしければどういった状況だと便利なのかお教えいただけませんでしょうか。 追加質問で申し訳ないのですが、よろしければお願いします。

関連するQ&A