我有一個默認的虛擬主機。它被配置為在里面觀看 Document Root/var/www/html并且效果很好。但我有一個問題。我在子目錄中有多個站點,我不知道如何為每個站點設定檔案根目錄。例如,/var/www/html/test,/var/www/html/test2等。當我包含來自 的檔案時/var/www/html/test,它會在 內部搜索var/www/html。例如,我包含類似 的檔案include_once '/core.php',但出現錯誤Failed opening required '/var/www/html/core.php',因為此處沒有當前檔案。是否可以為主虛擬主機內的每個目錄設定檔案根目錄?謝謝!
我的主要虛擬主機配置:
<VirtualHost *:80>
DocumentRoot /var/www/html
<Directory /var/www/html>
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
allow from all
</Directory>
AccessFileName .htaccess
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
此外,您可以說,我需要使用相對路徑,但在某些方面是不可能的,因為有時我會使用由其他人創建的現成網站。
uj5u.com熱心網友回復:
是否可以為主虛擬主機內的每個目錄設定檔案根目錄?
簡短的回答是否定的,你不能。每個虛擬主機 1 個檔案根。為了了解事情是如何作業的,您需要了解什么是指令背景關系。讓我們以VirtualHost 指令為例。正如我們從檔案中看到的那樣,它只有 1 個背景關系,即服務器配置。然后服務器配置背景關系告訴接下來:
指令可以在服務器組態檔(例如,httpd.conf)中使用,但不能在任何 VirtualHost 或 Directory 容器中使用。.htaccess 檔案中根本不允許使用它。
但是DoocumentRoot有兩個背景關系:服務器配置和虛擬主機。休息你應該自己弄清楚;)
有很多方法可以達到預期的效果
- 在單個 IP 地址上運行多個基于名稱的網站
- 在不同的埠上運行不同的站點
- 基于埠和基于 ip 的混合虛擬主機
希望這個回答能幫到你!
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/349361.html
上一篇:如果(isset$_Post[])在我從ajax向php發送var時不起作用
下一篇:提交表單后,Web顯示空白頁
