在 apache 虚拟主机子域中包含来自 /var/www 的文件

在 apache 虚拟主机子域中包含来自 /var/www 的文件

这个问题我已经遇到一段时间了,但仍然想不出合适的解决方案——我想/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"; ?>

相关内容