确定网站的"根"位置

Yar*_*rin 6 php path base-url document-root

我需要一些关于网站"root"网址和目录的概念和术语的帮助.

是否有可能确定网站的根目录,或者这是一个随意的想法,只能建立实际服务器的根目录?

假设我正在编写一个PHP插件,该插件将被不同位置的不同网站使用,但需要确定网站的基本目录是什么.使用PHP,我将始终能够确定DOCUMENT_ROOT和SERVER_NAME,即服务器(或虚拟服务器)的绝对URL和绝对目录路径.但我不知道网站本身是"安装"在根目录还是子目录中.如果网站在子目录中,我需要用户明确设置"子路径"变量.正确?

Ima*_*dem 13

回答问题1:是的,您需要一个明确设置网站根路径的变量.可以使用包含以下行的每个网站的根目录中的htaccess文件来完成:

SetEnv APP_ROOT_PATH /path/to/app
Run Code Online (Sandbox Code Playgroud)

http://httpd.apache.org/docs/2.0/mod/mod_env.html

您可以使用以下命令在PHP脚本中的任何位置访问它:

<?php $appRootPath = getenv('APP_ROOT_PATH'); ?>
Run Code Online (Sandbox Code Playgroud)

http://php.net/manual/en/function.getenv.php


gen*_*sis 6

$ url和$ dir是否总是指向同一个地方?

<?php 
$some_relative_path = "hello"; 
$server_url = $_SERVER["SERVER_NAME"]; 
$doc_root = $_SERVER["DOCUMENT_ROOT"]; 


echo $url = $server_url.'/'. $some_relative_path."<br />"; 
echo $dir = $doc_root.'/'. $some_relative_path;
Run Code Online (Sandbox Code Playgroud)

输出:

sandbox.phpcode.eu/hello
/data/sandbox//hello
Run Code Online (Sandbox Code Playgroud)