0

私のウェブサイトで問題が発生していますが、これは常に発生しているわけではないため、修正方法が少しわかりません。そうすることもあれば、そうでないこともあります。

この問題は、セッションとリダイレクトに関係しています。私がやっていることは、ユーザーがタスクを完了すると、リダイレクトされるということです。それらがリダイレクトされると、$_SESSION が設定され、彼らが行ったことは完了したというメッセージが表示されます。ユーザーがリダイレクトされているページが読み込まれ、メッセージが表示されていない場合、ページは最終的にユーザーに表示される前に更新されるため、メッセージを含むセッション変数は設定解除されます。奇妙なことに、ある特定のリダイレクト (ユーザーが Facebook Connect でログインするとき) では機能しますが、他のすべてのリダイレクトでは機能しません。

なぜこれが起こるのかについての私の最近の考えは、私が mod_rewrite を使用しているためです。mod_rewrite を使用すると、ブラウザに表示される前にページが更新されますか?

URLの書き換えに使用しているコードは次のとおりです。

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*) index.php [L]
4

1 に答える 1

1

いいえ。mod_rewrite は、(応答が送信される前に) ルールに一致する着信要求を取得し、特定の宛先にルーティングするように apache に指示します。これはメールの転送のようなものです。手紙が 2 回届くのではなく、別の場所に届くだけです。

ソリューションを追加するための更新

headerリダイレクトの呼び出し後に何らかのアクションを実行している可能性があります。exitafterへの呼び出しを追加するheaderと、問題は解決するはずです。

于 2012-09-20T18:01:19.383 に答える