$_SERVER["SERVER_NAME"];
和$_SERVER["DOCUMENT_ROOT"];
是否始终解析到同一目录?有没有他们不会的情景?
修改
为了澄清,我知道这些不是一回事 - 我只想确定SERVER_NAME是否始终映射到DOCUMENT_ROOT。即,如果通过跟随它们中的每一个,将始终到达服务器文件系统上的相同物理位置。
答案 0 :(得分:2)
但是,它确实针对同一目录(每次)
答案 1 :(得分:1)
SERVER_NAME
不是它应该是实际域名的路径。您可能希望包含REQUEST_URI
,它将从Web服务器的角度为您提供绝对路径(假设您只是使用文件.REQUEST_URI为您提供用户输入的路径.Web服务器或PHP本身可以提供甚至不在文件中的内容)
为此,这实际上取决于$some_relative_path
DOCUMENT_ROOT是您的网站文件实际存在于服务器上的绝对服务器路径。 DOCUMENT_ROOT可能对包含其他PHP文件很有用,但它永远不会暴露给连接客户端,因为这会带来安全风险。
在任何情况下它们都不应该相同,除非由于某种原因有人在服务器上设置/
作为文档根目录。这可能是一个非常糟糕的主意,因为即使是系统文件也会暴露在网络上。
答案 2 :(得分:0)
SERVER_NAME是执行脚本的服务器的名称。它也可以是虚拟主机名。
DOCUMENT_ROOT是您正在执行的脚本的路径。如果您正在运行某种网址重写,则它可能与SERVER_NAME
的值相同