最近在論壇里看到有人問到 Linux 如何設置只允許域名訪問站點而禁止IP訪問站點的問題,之前自己也用過這個功能,可以防止別人用 IP 地址來訪問到自己的網站,下面我就我自己的環境給出解決方法,我用的是 OneinStack 的一鍵包,LANMP 環境,其實都差不太多,大同小異,只要理解了原理,下面的就好辦了。
具體方法為:找到 apache 的配置文件,我的環境下路徑為:/usr/local/apache/conf/httpd.conf,在文件最下面,Include conf/vhost/*.conf 這句話之前添加如下代碼:
<VirtualHost *:88> # admin@163.com 為管理員郵箱 ServerAdmin admin@163.com # 默認綁定路徑 DocumentRoot "/home/wwwroot/default" # IP地址 ServerName 115.28.152.187 <Directory "/home/wwwroot/default"> SetOutputFilter DEFLATE Options FollowSymLinks Require all granted AllowOverride None Order allow,deny Allow from all DirectoryIndex index.php index.htm </Directory> <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{QUERY_STRING} ^(.*)$ RewriteRule ^(.*)$ http:\/\/www\.bbseat\.com\.cn\/ [R=301,L] </IfModule> </VirtualHost>
上面的代碼是把 IP 地址訪問的請求全部跳轉到你設定的網站,當然,你也可以直接禁止訪問,但感覺這樣比直接硬生生的禁止訪問更友好些。