这个问题我已经遇到一段时间了,但仍然想不出合适的解决方案——我想/var/www
从 Apache 服务器中包含目录中的文件。每当我包含任何目录中的任何内容时,这都不是问题,/var/www
但我的子域(也来自 目录中/var/www
)表现不佳。
这是虚拟主机配置
<VirtualHost *:80>
ServerName support.cruisetouch.com
ServerAlias cruisetouch.com/Support
ServerRoot /var/www/
DocumentRoot /var/www/html/Support
<Directory /var/www/html/Support>
Options -Indexes +FollowSymLinks +MultiViews
AllowOverride All
Require all granted
</Directory>
我通常像这样使用 PHP 包含文件:
include $_SERVER["DOCUMENT_ROOT"]."/_INCLUDES/Header.php"; ?>
并且它们会被从/var/www/_INCLUDES
目录中提取,但每当我在(子域目录)中使用这行代码时,/var/www/Support
它都会认为我在该目录中查找。
我怎样才能包含文件/var/www
而不将其/var/www/Support
视为文档根目录?直接链接到文件也不是一种选择。
非常感谢任何支持。
在 Ubuntu 上运行 Apache。
答案1
我猜测如果在 PHP 包含中使用SERVER_ROOT
而不是 ,效果会更好。DOCUMENT_ROOT
根据评论编辑正确答案:我的错,这个变量似乎在 $_SERVER 数组中不可用。尝试简单地将包含更改为 $_SERVER["DOCUMENT_ROOT"]."../../_INCLUDES/Header.php"; ?>