Linux
在 Apache Server 的不同目錄中映射本地 IP 127.0.1.2
在我的本地主機(Apache 伺服器)中,我
VirtualHost
在埠 80 中有兩個指向不同的目錄。這是我的兩個conf文件:
<VirtualHost *:80> ServerName localhost DocumentRoot /home/myuser/project_1/ ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> <VirtualHost *:80> ServerName project2 DocumentRoot /home/myuser/project_2/ ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
在我的
/etc/hosts
文件中:127.0.0.1 localhost 127.0.1.2 project2
現在,當我鍵入
http://localhost
它時,它映射到project_1
目錄並http://project2/
映射到project_2
目錄。這裡一切都很好,但如果我鍵入127.0.1.2
它總是映射到第一個project_1
而不是project_2
目錄,即它映射到localhost
而不是project2
url。為什麼是這樣?我怎麼能做這樣的反向映射?
在您的虛擬主機配置中,您使用指定的基於名稱的虛擬主機
ServerName
。這意味著僅當客戶端請求中的“主機”標頭匹配時才會載入配置。當 Apache 無法將請求的主機與任何已配置的虛擬主機匹配時,Apache 的預設行為是載入它可以找到的第一個已配置的虛擬主機。有很多選項可以獲取正確的內容,一種是調整請求中的“Host”標頭以匹配
ServerName
您嘗試訪問的內容。另一種是將IP地址添加為aServerAlias
,或者您可以切換到基於IP的虛擬主機並以這種方式進行配置。