site.com/#/xyz …のような場合に、PHP/CodeIgniter が URL を読み取る方法はありますか?
-
26-09-2019 - |
質問
基本的に、私はほとんどが Ajax ベースのサイトを持っています。結果をロードすると、Ajax 経由で結果が表示され、URL アドレス バーが から変わります。 mysite.com
に mysite.com/#xyz/A_Random_Title
.
A_Random_Title
はロードされたものの SEO に適した形式のタイトルですが、重要な部分は #xyz
. xyz
はロードされた結果の ID であり、データベースのクエリに使用されます。
CodeIgniter が現在の URL をそのように読み取る方法はありますか?ページが読み込まれた後にそれを読むという意味ではなく、そのページへのリクエストを読むという意味です...それが理にかなっていることを願っています!
ありがとう!
ジャック
解決
いいえ、ブラウザでのみ使用できます, そのため、JavaScript で対処する必要があります。サーバーがそれを読み取ることができません。
説明:
基本的に、ページ URL のハッシュ コンポーネント (# 記号に続く部分) はブラウザによってのみ処理され、ブラウザがそれをサーバーに渡すことはありません。悲しいことに、これは HTML 標準の一部であり、IE またはその他のブラウザ (さらに言えば、PHP またはその他のサーバー側テクノロジ) を使用しているかどうかに関係なく同じです。
これが何ですか ウィキペディア それについてこう言います。
フラグメント識別子の機能は、URI の残りの部分とは異なります。つまり、その処理は サーバーからの参加がなく、クライアント側のみで実行されます. 。エージェント (Web ブラウザなど) が Web サーバーにリソースを要求すると、エージェントは URI をサーバーに送信しますが、フラグメントは送信しません。代わりに、エージェントはサーバーがリソースを送信するのを待ってから、フラグメント値に従ってリソースを処理します。最も一般的なケースでは、エージェントは、フラグメント値と等しい属性文字列を持つアンカー要素まで Web ページを下にスクロールします。他のクライアントの動作も可能です