在php,如何检测你工作的服务器
in php, How to detect the server where you work
我目前正在本地处理一个项目,一旦我完成任务,我必须将更改上传到服务器(在云端)。
问题是有些地址是我直接指向的,上传到服务器后,需要手动更改,例如:
本地
http://localhost/project/user/test1
到
在云端
http://ourserver/projectXYZ/user/test1
在php中有什么方法可以知道你所在服务器的地址,并以此来放置这些动态地址吗?
最好使用相对于文档根目录的 URI,不带主机部分,例如/projectXYZ/user/test1
。
也就是说,有时您需要知道主机名(例如,如果您曾经执行 30x 重定向,RFC 2616 需要 Location:
header 到绝对 URI)。在这种情况下,最好的办法是查看 $_SERVER['HTTP_HOST']
,其中包含 "contents of the Host:
header from the current request, if there is one",以引用 PHP 手册。我不会太担心 "if there is one" 部分;由于 Host:
header 在 HTTP 中是强制性的,因此缺少它是一种极其罕见的边缘情况。
我目前正在本地处理一个项目,一旦我完成任务,我必须将更改上传到服务器(在云端)。
问题是有些地址是我直接指向的,上传到服务器后,需要手动更改,例如:
本地 http://localhost/project/user/test1
到
在云端 http://ourserver/projectXYZ/user/test1
在php中有什么方法可以知道你所在服务器的地址,并以此来放置这些动态地址吗?
最好使用相对于文档根目录的 URI,不带主机部分,例如/projectXYZ/user/test1
。
也就是说,有时您需要知道主机名(例如,如果您曾经执行 30x 重定向,RFC 2616 需要 Location:
header 到绝对 URI)。在这种情况下,最好的办法是查看 $_SERVER['HTTP_HOST']
,其中包含 "contents of the Host:
header from the current request, if there is one",以引用 PHP 手册。我不会太担心 "if there is one" 部分;由于 Host:
header 在 HTTP 中是强制性的,因此缺少它是一种极其罕见的边缘情况。