在htaccess rewriterule之后,Php会话不起作用

时间:2011-08-19 19:45:18

标签: php .htaccess session mod-rewrite session-variables

我有一个我正在尝试设置的预订系统。我想为所有客户使用相同的功能。我已经设置了htaccess rewriterule,使其看起来像是从所有文件运行 www.mydomain.com/web-book/customerX/index.php ,但实际上文件位于web-book文件夹中。这只是为了很好的展示,并为每个客户提供一个简单的预订链接。

RewriteRule ^([a-zA-Z]+)/([_a-zA-Z-]+)\.php$ /web-book/$2.php?site=$1

我也用同样的技术移动我的CSS /图像。 javascripts工作得很好。除了php Sessions之外,一切都很好。

问题:php $ _Session变量不起作用,这意味着我无法登录或执行涉及会话的任何事情。 必须有一些我缺少的东西?如果可能的话,我不想在mydomain.com上访问可访问的会话吗?

2 个答案:

答案 0 :(得分:2)

您是否将PHP会话ID附加到查询字符串?如果是这样,请尝试使用QSA标志:

RewriteRule ^([a-zA-Z]+)/([_a-zA-Z-]+)\.php$ /web-book/$2.php?site=$1 [QSA]

这将保留Querystring中的任何Get-Variable,包括会话ID。

答案 1 :(得分:0)

检查根文件夹中是否存在冲突的php.ini文件。

我无意中将php.ini文件从本地服务器复制到远程服务器,这样可以防止在我的根目录和子目录之间共享$_SESSION