Apache-2.2

Apache - 僅偵聽特定域,而不是 IP

  • December 24, 2021

如何配置 apache 以拒絕直接連接到 IP 地址 ( http://xxx.xxx.xxx.xxx ) 而不是虛擬主機名http://example.com

我的虛擬主機配置:

ServerName example.com

<VirtualHost *:80>

       ServerName example.com

       DocumentRoot /var/www/           
       <Directory /var/www/>                    
               AllowOverride All
               Order allow,deny
               allow from all
       </Directory>

</VirtualHost>

您不能讓它拒絕連接,因為在客戶端實際發送 HTTP 請求之前,伺服器不知道使用者嘗試用作其 HTTP 主機的主機名(或 IP)。TCP 偵聽器始終綁定到 IP 地址。

可以接受 HTTP 錯誤響應嗎?

<VirtualHost *:80>
   ServerName catchall
   <Location />
       Order allow,deny
       Deny from all
   </Location>
</VirtualHost>

<VirtualHost *:80>
   ServerName example.com
   DocumentRoot /var/www/
   <Directory /var/www/>
       AllowOverride All
       Order allow,deny
       allow from all
   </Directory>
</VirtualHost>

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