簡體   English   中英

PHP / Apache如何從php.ini外部設置session.cookie_domain

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM