一見ランダムにWebページ(/ wantなど)にアクセスしようとすると、同じサブドメインの別のWebページ(/ getなど)が応答でロードされます。これは、私が開発している一連のWebサイトで、localhostバージョンと実稼働バージョンの両方で長年にわたって行われてきました。私はそれを奇妙なFirefoxのフロックとして無視しようとしましたが、別のユーザーのコンピューターで同じことが起こっていることを発見したので、何が起こってもこれらのWebサイトが一部の人々にとって使用不能になるのではないかと心配しています。
私は、何が起こっているのか、この出来事の説明を他の誰かに手がかりを探すためにインターネットを探し回っていましたが、空っぽになりました。問題の根本原因を特定するためにこれをテストする方法や、CakePHPサイトのコード内の何かが原因である可能性を排除する方法もわかりません。
ネットワークスニファーは、/ wantをロードしようとすると、/ getの実行要求のみが行われることを確認します。ただし、Firebugで/ wantのAJAXリクエストを実行すると、次のように表示されます。
GET http://example.com/want 301 Moved Permanently
Response Headers: Location: http://example.com/get
GET http://example.com/get
そのため、Firefoxは301リダイレクトをキャッシュしましたが、現在または過去にステータスを301に設定したWebサイトのコードには何もありません。Firefoxはランダムに決定しているようです301リダイレクトをキャッシュします。また、一貫性がありません。これらのリダイレクトは、Webサイトが変更されたりFirefoxのキャッシュがクリアされたりすることなく、独自に変更される場合があるためです。
みんな、私と同レベル。 Firefoxは真っ直ぐにお化けですよね?
Firefoxのキャッシュをクリアした後、おそらくある時点で再び発生するのでしょうか?
はい。
同じ/ want URL?または常に異なる/新しいURLですか?
同じ場合もあれば異なる場合もあります。
/ wantと/ getはおそらく関係ありませんか?
同じWebサイトの2つのページまで。
通常のリンクとは異なり、リダイレクトでナビゲートしていませんか?
いいえ、通常のリンクだけで、/ want URLをアドレスバーに貼り付けます。ユーザーを/ getにリダイレクトするサイト内の唯一のものは、/ wantにさえありません。
成功時にリダイレクトする任意のログインページ?
ハァッ。さて、CakePHPはこれらのステップを通してユーザーを送ります...
デフォルトでは、CakePHPは コード302(一時的に検出/移動) でリダイレクトを行いますが、キャッシュすべきではありません。
ただし、、影響を受けるすべてのサイトは milesjのCakePHP Utilityプラグイン のAutoLoginコンポーネントを使用していると確信しています。 自動ログインが成功すると、301の永続的なリダイレクトが含まれます 。その行では、ユーザーは次の順序でこれらの非ヌルのいずれかに301リダイレクトされます。
「ログイン後にここにリダイレクトする」ページを指定したことがないため、すべてが自動化され、ユーザーがログインしようとしたページまたはログイン後に/に移動する必要があります。 AutoLoginコンポーネントからこの/ want->/get動作が発生することを想像できる唯一の方法は、どういうわけか...
しかし、CakePHPコードベースを探していると、セッション内のリファラーデータを管理する方法や、あるリクエストが別のリクエストからリファラーを継承することが実際に可能かどうかを頭でラップすることができません。このシナリオは可能だと思われます。
AutoLoginコンポーネントのGitHubページの問題 を作成したので、私よりも賢い人が私の疑いを評価するのを手伝うことができます。
この問題は、 milesjのCakePHP Utilityプラグイン 、 修正済み の問題(1つのミスタイプされた文字)が原因であったようです。