ユーザーはページにいます1.php
。送信後、フォームは にリダイレクトされ2.php
ます。ここで、ブラウザの戻るボタンが使用されている場合、 page にリダイレクトします3.php
。
次のようなものはどうですか:
- 1.php [フォームを送信] =>
- 3.php [ヘッダー(場所:2.php) ] =>
- 2.php
あなたはそうしない。これは Web ページの制御外であり、それは良いことです。
「戻る」を押すと、行ったことのないページにリダイレクトされて、ブラウザで制御できる Web サイトになったら不安です。私の最初の本能は、何かが非常に間違っていると思うので、ウイルススキャンなどを行うことです. ユーザーはどのように反応しますか?
編集:提案された解決策で質問を編集しました:「次のようなものはどうですか:1.php [フォームを送信] => 3.php [ヘッダー(場所:2.php)] => 2.php」
HTTP ヘッダーを使用してこれを行うと、一部のブラウザーはそれを履歴内の 1 つのページにマージする場合があります。ただし、JavaScript リダイレクトを使用して行うと機能します。これは、ブラウザがそれらをマージするほどスマートではないためです。また、状態を追跡する必要があります (ユーザーがフォームを送信したのか、戻ってきたのか?)。Cache-Control
ヘッダーが適切に設定されていることを確認する必要があります ( no-cache
)。これにより、ブラウザーは 3.php をキャッシュしません。そのページは、フォームを 1.php から送信するか、2.php から戻ってくるかによって、同じようには見えません。
ただし、中間に 3.php がまったくなく、1.php で同じ状態追跡をCache-Control
行った場合、同等の結果が得られるため、おそらく 3.php はまったく必要ありません。
セッションを使用します。セッション変数で最後にアクセスしたページを保持し、ユーザーが戻るボタンを押すと、コードはその変数を読み取ってリダイレクトする必要があります。
しかし、歴史などを当てにしないでください。
また、history.js を試してみることもできます (私はまだその解決策を自分で探しています)。