Linux

在 Apache Server 的不同目錄中映射本地 IP 127.0.1.2

  • March 23, 2018

在我的本地主機(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而不是project2url。

為什麼是這樣?我怎麼能做這樣的反向映射?

在您的虛擬主機配置中,您使用指定的基於名稱的虛擬主機ServerName。這意味著僅當客戶端請求中的“主機”標頭匹配時才會載入配置。當 Apache 無法將請求的主機與任何已配置的虛擬主機匹配時,Apache 的預設行為是載入它可以找到的第一個已配置的虛擬主機。

有很多選項可以獲取正確的內容,一種是調整請求中的“Host”標頭以匹配ServerName您嘗試訪問的內容。另一種是將IP地址添加為a ServerAlias,或者您可以切換到基於IP的虛擬主機並以這種方式進行配置。

引用自:https://unix.stackexchange.com/questions/432984