我创建了一个MVC php脚本,其中所有请求都在一个页面(main.php)中完成,该页面根据查询字符串中传递的module
调用控制器。
为了使网址漂亮,我使用了htaccess并编写了ff。:
RewriteEngine On
RewriteRule ^$ main.php?module=news/index [QSA]
RewriteRule ^news/([0-9]+)/([a-zA-Z0-9-]+)$ index.php?module=news/view&id=$1&slug=$2 [QSA,L]
RewriteRule ^login$ main.php?module=login/index [QSA,L]
RewriteRule ^profile/([a-zA-Z0-9-]+)$ main.php?module=user/view&slug=$1 [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !\.(css|js|jpg|png|gif)$
RewriteRule ^(.*)$ main.php?module=$1 [QSA,L]
现在,会话突然不起作用。 当我成功登录时,页面将被重定向http://domain.com/
从那里我可以看到会话已正确注册但在我重新加载页面后,我再次注销,就像会话仅适用于当前页面。而不是在下一页。
我做过ff,但没有解决我的问题:
session.auto_start
ini_set('session.auto_start',1)
session.bug_compat(在SO中发布)
ini_set('session.bug_compat_42', 0);
ini_set('session.bug_compat_warn', 0);
确保会话适用于子域名
ini_set('session.cookie_domain', '.mydomain.tld');
session_start() - >始终出现在我的页面
session.save_path是可重写的
所有请求都发送到domain.com而不是www.domain.com
我用来保存和获取数据的会话密钥是正确的
我很确定问题在于我之前的htaccess原因,我的脚本在会话中工作正常。
如果有人可以提供帮助,我将不胜感激。感谢。