site.com/#/xyz …のような場合に、PHP/CodeIgniter が URL を読み取る方法はありますか?

StackOverflow https://stackoverflow.com/questions/3627064

質問

基本的に、私はほとんどが Ajax ベースのサイトを持っています。結果をロードすると、Ajax 経由で結果が表示され、URL アドレス バーが から変わります。 mysite.commysite.com/#xyz/A_Random_Title.

A_Random_Title はロードされたものの SEO に適した形式のタイトルですが、重要な部分は #xyz. xyz はロードされた結果の ID であり、データベースのクエリに使用されます。

CodeIgniter が現在の URL をそのように読み取る方法はありますか?ページが読み込まれた後にそれを読むという意味ではなく、そのページへのリクエストを読むという意味です...それが理にかなっていることを願っています!

ありがとう!

ジャック

役に立ちましたか?

解決

いいえ、ブラウザでのみ使用できます, そのため、JavaScript で対処する必要があります。サーバーがそれを読み取ることができません。

説明:
基本的に、ページ URL のハッシュ コンポーネント (# 記号に続く部分) はブラウザによってのみ処理され、ブラウザがそれをサーバーに渡すことはありません。悲しいことに、これは HTML 標準の一部であり、IE またはその他のブラウザ (さらに言えば、PHP またはその他のサーバー側テクノロジ) を使用しているかどうかに関係なく同じです。

これが何ですか ウィキペディア それについてこう言います。

フラグメント識別子の機能は、URI の残りの部分とは異なります。つまり、その処理は サーバーからの参加がなく、クライアント側のみで実行されます. 。エージェント (Web ブラウザなど) が Web サーバーにリソースを要求すると、エージェントは URI をサーバーに送信しますが、フラグメントは送信しません。代わりに、エージェントはサーバーがリソースを送信するのを待ってから、フラグメント値に従ってリソースを処理します。最も一般的なケースでは、エージェントは、フラグメント値と等しい属性文字列を持つアンカー要素まで Web ページを下にスクロールします。他のクライアントの動作も可能です

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top