在哪里设置PHP $ _SERVER ['DOCUMENT_ROOT'] Trailing Slash?

car*_*ars 6 php apache ubuntu

有时$_SERVER['DOCUMENT_ROOT']返回斜杠.在其他环境中它没有.在哪里可以指定?

hak*_*kre 11

如果$_SERVER['DOCUMENT_ROOT']最后是否包含斜杠,你不能提前说.

通常,如果配置正确,则不包含尾部斜杠.在Ubuntu(以及其他UNIX)上,正确编写的目录路径/最后没有.例如,在Windows上,如果apache配置了一个,它甚至会拒绝启动.在UNIX上,Apache不那么挑剔,允许使用尾部斜杠.

但是,如果您将根目录(/)设置为文档根目录,则有一个例外.因为这种情况,您不能提前说明它是否包含尾部斜杠.

在任何情况下,它都包含DocumentRoot指令的值- 有或没有尾部斜杠,就像它已写入httpd配置文件一样.PHP只接管来自apache的值.要获得真正的文档根目录,请realpath在配置文件或PHP代码中使用和/或有条件地在末尾添加斜杠(或删除它).