[英]PHP Sessions disappear on htaccess redirect condition - In Chrome only
我的項目依賴於這個問題。
我在我的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上失敗。
根據你的評論:
我已設置此附加代碼以確保會話cookie位於正確的路徑和域中。 ini_set('session.cookie_domain','。bostonairporttaxicab.com'); ini_set('session.cookie_path','bostonairporttaxicab.com/';);
我認為你的cookie_path是錯誤的。 它不應包含域名,因為路徑是尾隨域名的部分。 嘗試將其設置為/
並查看是否修復了它。 也許Chrome以不同於其他瀏覽器的方式解釋它,因此拒絕您的會話cookie。
如果它不能在Chrome上運行,那就是你的Chrome故障......瀏覽器無法對.htaccess
或SESSION
執行任何操作,因為它們在服務器端運行。 您應該通過Chrome從其他計算機上查看它,如果它正在運行那么這正是您的Chrome故障,我對此有點確定......
你有沒有在每個頁面上開始會話。
你必須寫session_start(); 在php之后的文件頂部的函數
Htaccess文件在會話中不起任何作用,因為您的會話變量存活,直到您的會話處於活動狀態。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.