【问题标题】:Php Session don't see Servername and ServerAliasPhp Session 看不到 Servername 和 ServerAlias
【发布时间】:2014-02-06 10:18:24
【问题描述】:

我正在使用 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 地址 URL 和站点地址指定为 http://intranet.domain.lcl/wp

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

  • 用户通过intranet登录,如果他转到intranet.domain.lcl,他没有登录
  • 反之亦然,如果用户通过 intranet.domain.lcl 登录,如果他转到 intranet,则不会登录

即使没有我的脚本通过 php 会话记录用户并使用 wordpress logi 自然方式,我也进行了测试,但问题仍然相同。

有什么线索吗?

谢谢

【问题讨论】:

    标签: php apache session alias server-name


    【解决方案1】:

    这又回到了跨域 cookie。如果浏览器在页面a 上,它只会保存和发送域a 的cookie。服务器无法为其他域设置 cookie,也不会从浏览器获取其他域的 cookie。域b 也是如此,反之亦然。

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

    【讨论】:

    • 但我认为 ServerAlias 指向同一个域的 ServerName...现在我明白了,谢谢。但是没有解决方案或其他方式处理?
    • 不。浏览器看到不同的域,浏览器将其视为单独的域。
    猜你喜欢
    • 2015-11-03
    • 2018-09-05
    • 1970-01-01
    • 2013-08-24
    • 2013-10-03
    • 2010-10-05
    • 2016-10-02
    • 2016-02-20
    • 1970-01-01
    相关资源
    最近更新 更多