[英]PHP / Apache how to set session.cookie_domain from outside php.ini
我需要將cookie限制到我的www子域,這可以通過在php.ini文件中添加line session.cookie_domain = www.example.com來實現。 但是我的服務器上有許多虛擬主機,所以我需要每個域都有不同的域。 經過一段時間的網絡瀏覽后,我嘗試使用:
'SetEnv session.cookie_domain www.example.com' - in my httpd.conf
'php_flag session.cookie_domain www.example.com' in .htaccess
然而,兩者似乎都阻止cookie一起工作!
任何幫助非常感謝!
斯圖
問題是php_flag
實際上只適用於布爾值。 因此,當使用php_flag
命令時,您實際上將cookie_domain
設置為0
,這就是它停止工作的原因。
對於文本值,您需要在.htaccess或apache配置中使用php_value
。 還建議引用該值:
php_value session.cookie_domain ".domain.com"
請參閱: http : //www.php.net/manual/en/configuration.changes.php
實現此目的的最簡單方法是使用session_set_cookie_params()
而不是通過.htaccess
設置它( .htaccess
方法僅在PHP用作模塊時才有效)。 您可以通過以下方式使用它:
session_set_cookie_params(0, '/', 'www.example.com');
session_start();
另一種選擇是使用ini_set :
ini_set("session.cookie_domain", "www.example.com");
此代碼100%工作,將此代碼設置為.htaccess文件
php_value session.cookie_path "/"
php_value session.cookie_domain ".localhost"
或者是文件JavaScript的代碼
function my_cookie($name, $value, $expires = 0) {
return setcookie($name, $value, $expires, '/', 'example.com', ...);
}
在我的情況下,這個為我工作:
setcookie("name", $Value4Name, time()+$3600 , "/", ".domain.com");
但這是為您錄制域的根目錄的cookie。
歡呼PC
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.