Apache-2.2

如何讓 Apache 不響應僅 IP 請求?

  • November 12, 2021

我有幾個網站,都設置了http-vhosts.conf各自的ServerName網站DocumentRoot,它們執行良好且花花公子。

但是當我訪問伺服器的 IP 地址 URL 時,我會在第一個虛擬主機中取回文件,而不是 Apache 從我期望的位置提供http.conf文件的DocumentRoot.

如何配置 Apache,以便通過 IP 地址訪問伺服器,無論是外部還是環回,都不會返回第一個 VirtualHost?

這是第一個 VirtualHost,如果我通過 IP 訪問 Web 伺服器,我目前將其作為響應返回:

<VirtualHost *:80>
   ServerName "delaneatallent.com"
   ServerAlias "www.delaneatallent.com"
   DocumentRoot "/Library/WebServer/Documents/delanea"
</VirtualHost>
如果重要的話,在 OS X 上使用 Apache 2.2.14。
wq

簡而言之,你不能——這就是 Apache 的工作方式。如果您正在偵聽該 IP(根據 Prix 的評論),那麼 Apache 將使用在提供 IP 請求時定義的第一個虛擬主機。

如果這是不可取的,那麼考慮將第一個虛擬主機更改為您真正想要的(如果它是由 IP 提供的)。如果這不是你想要的,那麼考慮將重定向作為第一個虛擬主機,讓它去你想要的地方。

# default
<VirtualHost *:80>
 RewriteEngine on
 RewriteRule ^/(.*) http://othersite.com/$1 [L,R]
</VirtualHost>

你不能阻止 Apache 監聽那個 IP,但是你可以讓它做一些別的事情,用一點點創造力做你想做的事情。

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