apache(包含虛擬主機)禁止使用IP訪問的實現方法

lmx11發表於2009-11-03

用apache搭建的WEB伺服器,如何讓大家只能透過設定的域名訪問,而不能直接透過伺服器的IP地址訪問呢,有兩個方法可以實現,都是修改httpd.conf檔案來實現的,如果是虛擬主機的話,則是修改httpd_vhosts.conf來實現(僅限於我知道的,當然肯定還會有其他方法可以實現),下面舉例說明。

[@more@]

用apache搭建的WEB伺服器,如何讓大家只能透過設定的域名訪問,而不能直接透過伺服器的IP地址訪問呢,有兩個方法可以實現,都是修改httpd.conf檔案來實現的,如果是虛擬主機的話,則是修改httpd_vhosts.conf來實現(僅限於我知道的,當然肯定還會有其他方法可以實現),下面舉例說明。
  方法一:在httpd.conf檔案最後面,加入以下程式碼
NameVirtualHost 61.*.*.*

ServerName 61.*.*.*

Order Allow,Deny
Deny from all

 

DocumentRoot "/usr/local/apache/htdocs/web1"
ServerName www.***.com
     
說明:藍色部分是實現拒絕直接透過61.*.*.*這個IP的任何訪問請求,這時如果你用61.*.*.*訪問,會提示拒絕訪問。紅色部分就是允許透過這個域名訪問,主目錄指向c:/web(這裡假設你的網站的根目錄是/usr/local/apache3/htdocs/web1)
方法二:在httpd.conf檔案最後面,加入以下程式碼
NameVirtualHost 61.*.*.*
DocumentRoot "/usr/local/apache3/htdocs/error"
ServerName 61.*.*.*

DocumentRoot "/usr/local/apache/htdocs/web1"
ServerName www.***.com
     

說明:藍色部分是把透過61.*.*.*這個IP直接訪問的請求指向/usr/local/apache3/htdocs/error目錄下,這是個提示目錄,提醒使用域名訪問,IP不可以訪問。紅色部分的意思跟方法一是一樣的。
注:修改後要重啟apache
如果使用虛擬主機的話,apache虛擬主機預設情況下ip地址方式訪問( 對應第一個虛擬主機,所以我們可以先建一個指向錯誤頁面的虛擬主機,達到禁止用ip訪問網頁的目的。也就是說用 IP 訪問到的是第一個虛擬主機,所以只要不是第一個虛擬主機,用 IP 就訪問不到。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22383252/viewspace-1028400/,如需轉載,請註明出處,否則將追究法律責任。

相關文章