Php Session没有看到Servername和ServerAlias

时间:2014-02-06 10:18:25

标签: php apache session alias server-name

我正在使用WordPress在Intranet上工作并在Apache中设置(httpd-vhosts.conf),以便像intranet or intranet.domain.lcl一样访问Intranet:

Listen 80
<VirtualHost 10.241.9.147:80>
  DocumentRoot "C:/www/intranet"
  ServerName intranet.domain.lcl
  ServerAlias intranet
  <Directory "C:/www/intranet">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride all
    Order Deny,Allow
    Deny from all
    Allow from 10.240.9 10.241.9 
  </Directory>
</VirtualHost>

在Wordpress设置中,我将网站Wordpress地址网址和网站地址设为http://intranet.domain.lcl/wp

我遇到的问题是我使用PHP会话来记录用户,我注意到:

  • 用户是通过intranet记录的,如果他转到intranet.domain.lcl
  • ,则不会记录
  • 反之亦然,如果用户是通过intranet.domain.lcl登录的,那么如果他转到intranet
  • 则不会记录

我甚至在没有我的脚本的情况下测试通过php会话记录用户并使用wordpress logi自然方式,但问题仍然是相同的。

任何线索?

由于

1 个答案:

答案 0 :(得分:1)

这可以追溯到跨域cookie。如果浏览器位于a页面上,则只会保存并发送域a的Cookie。服务器无法为其他域设置cookie,也无法从浏览器获取其他域的cookie。对于域b,反过来也是如此。

两个不同的域是两个不同的域。即使它们具有相同的内容,浏览器也不知道。对于浏览器,它是两个不同的域,它们不能共享相同的登录cookie。