4

我的项目挂在这个单一的问题上。

我在我的 htaccess 中有这段代码来实现一个平面 url 系统

Options +FollowSymlinks
RewriteEngine on
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/page.php
RewriteRule (.*) page.php?pid=$1 [QSA]

虽然此代码存在,但我无法访问在任何其他页面上的一个页面上创建的会话变量。即使页面是不经过重定向的静态 .php 页面,会话也会消失。只有此代码以某种方式阻止会话。

我已设置会话 cookie 路径和域以确保领域正确,但它不起作用。

任何帮助都会发自内心的感激。

有趣的是它只在 Chrome 上失败。

4

3 回答 3

0

.htaccess如果它不能在 Chrome 上运行,那是你的 Chrome 的错……浏览器SESSION在服务器端运行时无能为力。您应该通过 Chrome 从其他计算机上检查它,如果它正常工作,那么这正是您的 Chrome 故障,我以某种方式确定这一点......

于 2012-10-02T08:52:23.963 回答
0

根据您的评论:

我已设置此附加代码以确保会话 cookie 位于正确的路径和域中。ini_set('session.cookie_domain', '.bostonairporttaxicab.com'); ini_set('session.cookie_path', 'bostonairporttaxicab.com/';);

我认为您的 cookie_path 是错误的。它不应包含域名,因为路径是域名后面的部分。尝试将其设置为/并查看是否可以修复它。也许 Chrome 对它的解释与其他浏览器不同,因此拒绝了您的会话 cookie。

于 2012-09-30T02:48:21.313 回答
0

您是否在每个页面上都开始了会话。

你将不得不写 session_start(); 在 php 之后的文件顶部的函数

Htaccess 文件在会话中没有任何作用,因为您的会话变量在您的会话处于活动状态之前仍然存在。

于 2013-01-23T11:21:38.367 回答