【问题标题】:in php, How to detect the server where you work在 php 中,如何检测您工作的服务器
【发布时间】:2015-05-04 09:20:11
【问题描述】:

我目前正在本地处理一个项目,一旦我完成任务,我必须将更改上传到服务器(位于云中)。

问题是有些地址是我直接指向的,上传到服务器的时候需要手动修改,例如:

本地 http://localhost/project/user/test1

在云端 http://ourserver/projectXYZ/user/test1

php有什么办法可以知道你所在服务器的地址,然后把这些动态地址放进去?

【问题讨论】:

  • 最好的解决方案是使用相对 URL。
  • 一开始为什么在URL中使用服务器?
  • 但如果不能,使用$_SERVER['PHP_SELF']获取当前网址。
  • 不要使用硬编码的网址;创建一个 config.inc.php 文件,当您在 localhost 或迁移到 www 上的服务器时,您可以在其中定义 url。只需更改 $baseURL = "localhost";到 $baseURL = "ourserver";如果您使用 git,请不要对文件进行版本控制,因为两台服务器上的配置会有所不同。

标签: php localhost server


【解决方案1】:

最好使用相对于文档根目录的 URI,不包括主机部分,例如/projectXYZ/user/test1。 也就是说,有时您需要知道主机名(例如,如果您曾经进行 30 倍重定向,RFC 2616 需要 Location: 标头到绝对 URI)。在这种情况下,最好的办法是检查$_SERVER['HTTP_HOST'],其中包含“当前请求中Host: 标头的内容,如果有的话”,以引用PHP 手册。我不会太担心“如果有的话”部分。由于Host: 标头在 HTTP 中是强制性的,因此缺少它将是极其罕见的边缘情况。

【讨论】:

  • 我完全同意你的看法。我正在使用 Twitter API,如果我把它放在相对位置,它会询问 CallBack 的方向,API 出现故障。无论如何,有几个 IF 和这个,它运行得很完美。谢谢!
猜你喜欢
  • 2019-07-13
  • 2011-06-30
  • 2013-03-02
  • 1970-01-01
  • 1970-01-01
  • 2010-09-16
  • 1970-01-01
  • 2013-04-16
  • 2011-03-14
相关资源
最近更新 更多