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 接受与您的规则匹配的传入请求(在向您发送响应之前),并将其路由到特定目的地。这就像邮件转发——你不会两次收到这封信,你只是在不同的地方收到它。

更新以添加解决方案

header在调用重定向之后,您可能会执行一些操作。添加对exitafter的调用header,您的问题应该得到解决。

于 2012-09-20T18:01:19.383 回答