【问题标题】:Relative path to subdomain子域的相对路径
【发布时间】:2012-03-18 13:14:12
【问题描述】:

在我的本地主机上,我正在运行一个网站,在 www.website.com 上,有人应该登录并重定向到 info.website.com。我正在使用以下路径来重定向用户:

header("Location: /info.website.com/index.php?s=welcome");

我将它上传到我的实时服务器,但现在它重定向到

http://website.com/info.website.com/index.php?s=welcome

我该如何解决?我应该用$_SERVER['DOCUMENT_ROOT'] 做点什么吗?

【问题讨论】:

    标签: php redirect path


    【解决方案1】:

    header("Location: http://info.website.com/index.php?s=welcome");
    注意:http://

    【讨论】:

    • 谢谢,但如果我在我的本地主机(测试环境)上这样做,重定向就不行了。那么我应该检查它是否是本地的吗?
    • 我不明白为什么这在本地主机上不起作用。不过,您可以检查这是否适合您
    • 是的,但是如果我在 localhost 上这样做,它不应该转到实时版本,而是本地版本。
    • 除了检查它是实时环境还是开发环境之外别无他法。
    • 我的意思是:localhost 应该去 header("Location: localhost/info.website.com/index.php?s=welcome");
    【解决方案2】:

    如果您想在本地模拟一个真实的域,那么您应该更改您的主机文件,添加如下内容: 127.0.0.1 mydomain.com

    并设置一个监听 mydomain.com 的虚拟主机(至少是 apache)

    然后,当您想从生产中获取时,您可以更改您的主机文件。

    【讨论】:

      【解决方案3】:

      发送位置标头时不需要包含 http 任何内容。它们可以是完全相对的,如下所示:

      header("Location: /index.php?s=welcome");
      

      这应该适用于您的测试和生产服务器

      【讨论】:

      • 应该是子域的路径,而不是同一个域的路径;-)
      【解决方案4】:
      if ($_SERVER['HTTP_HOST'] != 'localhost')
      {
          header("Location: http://info.website.com/index.php?s=welcome");
      } else
      {
          // go to localhost
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-11-01
        • 2013-07-17
        • 1970-01-01
        • 1970-01-01
        • 2016-10-07
        • 1970-01-01
        • 1970-01-01
        • 2018-11-15
        相关资源
        最近更新 更多