Apache配置禁止使用IP訪問網站(已測)


 在一般情況下,網站可以用域名和IP來訪問。本來如果網站可以通過IP直接訪問,這也沒什麼問題,但是會有一些隱患:

比如由於搜索引擎也會收錄你的IP地址的頁面,所以同一個頁面搜索引擎會重複收錄,造成頁面的權重不如單個收錄高。
如果使用IP可以訪問,那麼域名就有可能被惡意指向。

還記得曾經的 google.com.sb 事件嗎?google.com.sb 這個域名被惡意指向了百度,後來證實了 google.com.sb 這個域名爲第三者惡意指向的,並不是Google所爲。當然這只是個玩笑,但是如果被人惡意用別的域名解析到你的IP的話,那麼你的網站就能通過別人的域名來訪問了。

被惡意指向之後會發生什麼?假如那域名是不友善的域名,比如曾經指向非法網站,容易引發搜索引擎懲罰,連帶IP受到牽連。即使域名沒什麼問題,但流量也會被劫持到別的域名,從而遭到廣告聯盟的封殺……

那麼我們要如何解決這個問題呢?最直接的方法是讓用戶只能通過域名來訪問網站,而不能通過IP來直接訪問。這個可以修改Apache配置文件httpd.conf來實現。下面是一個Apache配置的例子:


<VirtualHost 222.73.*.*>

          ServerName 222.73.*.*

          ServerAlias 222.73.*.*

          <Location />

          Order Allow,Deny

          Deny from all

          </Location>

</VirtualHost>


#<VirtualHost *:80>

<VirtualHost 222.73.*.*>

ServerName www.域名.com

ServerAlias 域名.com *.域名.com

DocumentRoot /var/www/html/visabean

</VirtualHost>


第一部分代碼是實現拒絕直接通過   這個IP的任何訪問請求,這時如果你用 ip訪問,會提示拒絕訪問。

第二部分代碼就是允許通過 http://域名.com/ 這個域名訪問,主目錄指向 /var/www/html/ (這裏服務器OS是 CentOS)

第三部分代碼是允許不帶 www 的域名訪問,應該能和上面的合併一起寫吧。

通過上面的配置,便可以禁止使用IP來訪問網站了。



Nginx處理思路:nginx代理轉發的,可以通過添加到配置文件,if判斷,如果是客戶的綁定的域名,通過正常訪問,如果非客戶的域名,直接返回403:


if ( $host !~* 客戶需要綁定訪問的域名) {

            return 403;

        }



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章