当前位置: > Linux服务器 > apache >

apache配置,禁止ip访问web站点

时间:2015-02-03 17:48来源:linux.it.net.cn 作者:IT
由于一台服务器上面部署了好几个应用,对应不同的域名,如果用户知道ip地址的话,直接用户ip地址访问,会显示第一个虚拟主机的页面(更改了虚拟主机的顺序,每次都是显示第一个)。这样对用户造成不好的印象,所以要禁止ip访问。 

方法一:在httpd.conf文件最后面,加入以下代码 
NameVirtualHost 221.*.*.* 
<VirtualHost 221.*.*.*> 
ServerName 221.*.*.* 
<Location /> 
Order Allow,Deny 
Deny from all 
</Location> 

</VirtualHost>     
<VirtualHost 221.*.*.*> 
DocumentRoot "/www/web" 
ServerName www.it.net.cn
</VirtualHost> 
说明:蓝色部分是实现拒绝直接通过221.*.*.*这个IP的任何访问请求,这时如果你用221.*.*.*访问,会提示拒绝访问。红色部分就是允许通过www.it.net.cn这个域名访问,主目录指向/www/web(这里假设你的网站的根目录是/www/web)。 
此方法,我配置后导致整个服务器的访问都报443没有权限,但是把ip的虚拟主机配置到最下面就没有问题,不清楚问什么会这样。 

方法二:在httpd.conf文件最后面,加入以下代码 
NameVirtualHost 221.*.*.* 
<VirtualHost 221.*.*.*> 
DocumentRoot "/www/test" 
ServerName 221.*.*.* 
</VirtualHost>      
<VirtualHost 221.*.*.*> 
DocumentRoot "/www/web" 
ServerName www.it.net.cn
</VirtualHost> 
说明:蓝色部分是把通过221.*.*.*这个IP直接访问的请求指向/www/test目录下,这可以是个空目录,也可以在里面建一个首页文件,如index.hmtl,首面文件内容可以是一个声明,说明不能通过IP直接访问。红色部分的意思跟方法一是一样的。 
这种方法能给用户一个提示,用户体验度会好点。 
注:修改后需要重启apache (责任编辑:IT)
------分隔线----------------------------