会话不适用于htaccess

时间:2014-08-09 07:47:36

标签: php regex apache .htaccess mod-rewrite

我创建了一个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,但没有解决我的问题:

  1. session.auto_start

    ini_set('session.auto_start',1)

  2. session.bug_compat(在SO中发布)

    ini_set('session.bug_compat_42', 0);

    ini_set('session.bug_compat_warn', 0);

  3. 确保会话适用于子域名

    ini_set('session.cookie_domain', '.mydomain.tld');

  4. session_start() - >始终出现在我的页面

  5. session.save_path是可重写的

  6. 所有请求都发送到domain.com而不是www.domain.com

  7. 我用来保存和获取数据的会话密钥是正确的

  8. 我很确定问题在于我之前的htaccess原因,我的脚本在会话中工作正常。

    如果有人可以提供帮助,我将不胜感激。感谢。

0 个答案:

没有答案