2009-07-06 11 views
0

パンくずリストや前回の次のアイテムへのリンクなど、どのリンクを表示するかを決定するためにユーザーがどこから来たのかを判断できるようにする必要があります。これは基本的にPHPのHTTP_REFERERの機能ですが、複数のページに渡ってそれを追跡する方法が必要です。私はまた、戻るボタンを "サポート"する必要があります。参照ページを追跡して他のリンクを作成する方法はありますか?

私は、Facebookが "ref"のクエリ/取得パラメータを使用して参照ページを追跡していることに気付きました。 (また、AJAXを使用してページ全体を再読み込みすることも避けていますが、私は今予算を持っていません)また、私が取り組んでいるサイトはGoogleによってインデックスを作成する必要があります。私はcanonical link tagを追加する必要があります。

ref/referrerクエリパラメータが最適な方法か他のオプションがあるのでしょうか?

答えて

3

パンくずリストが必要な場合は、HTTP_REFERERを使用しないでください。 User > Albums > AlbumName > Photoのように、友達がどこから来ても、自分の友だちからの直接のリンクから来たものであっても、その場所に到達するには論理的なパスでなければなりません。つまり、いくつかのページに戻ってほしいのであれば、配列を変数としてSESSION変数に格納してください。

Facebookは、同じページにアクセスする複数の方法があるので、ユーザーが使用しているボタンの統計情報を収集するために、Facebookがちょうどref GET変数を使用していると確信しています。

これは、戻るボタンを壊すか、正規のタグに一致しないようにしてください。コメントから


あなたが?ref=blahタグ、またはセッション変数、($_SESSION['history'][0] = $_SERVER['HTTP_REFERER']またはREQUEST_URI)を使用することができます。最も簡単なものを使用してください。セッション変数は、クッキーに依存したり、URLを介してIDを渡したりするだけで、GETはURLを乱雑にし、友人に渡す可能性があります。

+0

あなたの言っていることが分かりません。いいえ、ページを表示する前に他のページを表示しないため、セションを使用できません。私はHTTP_REFERERを使用できないことを知っています。だから、あなたはrefタグが最高か何か他のものだと言っていますか?あなたはすべてが間違っていると言うようです。 –

+0

正確に何をしようとしていますか?ユーザーが最後に表示した5ページを保持したい場合は、それらをセッション変数に入れます。ブレッドクラムが必要な場合は、どこにいたかにかかわらず、現在のページのみに基づいてパンくずリストを生成します。私の例では、ユーザーが写真を見ている場合、 'User> Albums> AlbumName> Photo'のようなブレッドクラムを表示することができます。 HTTP_REFERERやそれ以外の何らかのプログラミングロジックは必要ありません。 – mpen

+0

Facebookはリンクを生成するためにrefタグを使用していないと言っています。彼らはそれを使って訪問者がサイトをどのように使っているかを監視し、どのボタンが最もクリックされたかを判断することができます。ブレッドクラムとは関係ありません。 – mpen

関連する問題