Apache-2.2

包括來自 /var/www 的文件在 apache 虛擬主機子域中

  • July 12, 2016

我遇到這個問題已經有一段時間了,但仍然無法找到合適的解決方案——我想在/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。

我猜如果你使用SERVER_ROOT而不是DOCUMENT_ROOT在你的 PHP 包含中它會表現得更好。

編輯評論中的正確答案:我的錯,這個 var 似乎在 $ _SERVER array. Try to simply change the include to $ _伺服器

$$ “DOCUMENT_ROOT” $$."../../_INCLUDES/Header.php"; ?>

引用自:https://serverfault.com/questions/789351