根据 6 月 28 日的源代码控制,它看起来像是 Apache 2.3.13 中的新功能。还有 CONTEXT_DOCUMENT_ROOT 看起来更容易理解。
“引入新的 context_document_root 和 context_prefix,它们提供有关非全局 URI 到目录映射(例如从 mod_userdir 或 mod_alias)到脚本的信息。” 资料来源: http://marc.info/?l=apache-cvs&m= 130928191414740
它来自 Apache,并且与您何时可以在请求 URI 和不同目录之间进行不同的映射有关,例如当您使用http://example.com/~username访问“用户名”的 web 空间下的网站时,因此实际的文档根目录会有所不同。
我认为如果您为一个 URI 指定多个目录源,它会派上用场,例如:
Userdir public_html /usr/web
那么您永远不确定文件是在“public_html”还是“/usr/web”(因为它先尝试一个,然后再尝试另一个),因此 CONTEXT_DOCUMENT_ROOT 和 CONTEXT_PREFIX 可以帮助您找到它。
还看不到任何正式文档,因为 2.3 似乎已在文档中被跳过(http://httpd.apache.org/docs/)
编辑:评论已经回答了您可以依赖哪些服务器变量的另一部分(不可能说)。如果您发现“CONTEXT”变量满足您的需求,那么您可能需要编写一个函数,说明“如果它们存在,请使用它们,但如果不存在,请使用另一个”。
一个常见的例子是当您尝试(不可靠,我知道)获取源协议时。在搜索 HTTPS = 'on' 之前,您将首先检查代理添加的标头 (X_FORWARDED_PROTO)。如果环境变量恰好在您的服务器上,您可能需要执行类似操作。