我的项目依赖于这个问题。
我在htaccess中使用此代码来实现平面网址系统
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上失败。
答案 0 :(得分:0)
根据你的评论:
我已设置此附加代码以确保会话cookie在其中 正确的道路和领域。函数ini_set( 'session.cookie_domain', '.bostonairporttaxicab.com');函数ini_set( 'session.cookie_path', 'bostonairporttaxicab.com /');
我认为你的cookie_path是错误的。它不应包含域名,因为路径是尾随域名的部分。尝试将其设置为/
并查看是否可以修复它。也许Chrome会以不同于其他浏览器的方式解释它,因此拒绝您的会话cookie。
答案 1 :(得分:0)
如果它无法在Chrome上运行,那么这是您的Chrome错误...浏览器无法对.htaccess
或SESSION
执行任何操作,因为它们在服务器端运行。您应该通过Chrome从其他计算机上查看它,如果它正在运行那么它就是您的Chrome故障,我对此有点确定......
答案 2 :(得分:0)
您是否在每个页面上开始了会话。
你必须写session_start();在php之后的文件顶部的函数
Htaccess文件在会话中不起任何作用,因为您的会话变量在您的会话处于活动状态之前一直存在。