一般來說,網站可以用域名和IP來訪問。你的網站可以通過IP直接訪問,本來這沒什麼問題,但是會有些隱患:
由於搜索引擎也會收錄你的IP地址的頁面,所以同一個頁面搜索引擎會重複收錄,造成頁面的權重不如單個收錄高。
域名惡意指向的可能。還記得去年還是前年的 google.com.sb 事件嗎?google.com.sb 這個域名被惡意指向了百度,後來證實了 google.com.sb 這個域名爲第三者惡意指向的,並不是Google所爲。當然這只是個玩笑,但是如果被人惡意用別的域名解析到你的IP的話,那麼你的網站就能通過別人的域名來訪問了。接下來會發生什麼?假如那域名是不友善的域名,比如曾經指向非法網站,容易引發搜索引擎懲罰,連帶IP受到牽連。即使域名沒什麼問題,但流量也會被劫持到別的域名,從而遭到廣告聯盟的封殺。
……
如何解決這個問題?最直接的方法是讓用戶只能通過域名來訪問網站,而不能通過IP來直接訪問。這個可以修改Apache的虛擬主機配置文件\conf\extra\httpd-vhosts.conf 來實現。下面是小站的實現:
NameVirtualHost 121.*.*.* <VirtualHost 121.*.*.*> ServerName 121.*.*.* <Location /> Order Allow,Deny Deny from all </Location> </VirtualHost> <VirtualHost 121.*.*.*> DocumentRoot /var/www/nowamagic/ ServerName www.pizigou.com </VirtualHost> <VirtualHost 121.*.*.*> DocumentRoot /var/www/nowamagic/ ServerName pizigou.com </VirtualHost>
第一部分代碼是實現拒絕直接通過 121.*.*.* 這個IP的任何訪問請求,這時如果你用 121.*.*.* 訪問,會提示拒絕訪問。
第二部分代碼就是允許通過 http://www.pizigou.com 這個域名訪問,主目錄指向 /var/www/nowamagic/ (這裏服務器OS是 CentOS)
第三部分代碼是允許不帶 www 的域名訪問,應該能和上面的合併一起寫吧。
在這裏記錄下,方便以後信手拈來。