apache设置拒绝IP访问网站方法,转载

目前常用Apache与Nginx来搭建的WEB服务器,通常搭建好之后使用IP也可以访问网站的内容,那对于Apache搭建的WEB服务器如何让网友只能通过设定的域名访问,而不能直接通过服务器的IP地址访问呢?其实这个也可以做到,下面是小七找到的两个方法可以实现,都是修改httpd.conf文件来实现的,下面举例说明。

方法一:在httpd.conf文件最后面,加入以下代码

  1. NameVirtualHost 11.*.*.*
  2. <VirtualHost 11.*.*.*>
  3. ServerName 11.*.*.*
  4. <Location />
  5. Order Allow,Deny
  6. Deny from all
  7. </Location>
  8. </VirtualHost>
  9. <VirtualHost 11.*.*.*>
  10. DocumentRoot “/var/www/xxx/7vps”
  11. ServerName www.7vps.net
  12. </VirtualHost>

说明:红色部分是实现拒绝直接通过11.*.*.*这个IP的任何访问请求,这时如果你用11.*.*.*访问,会提示拒绝访问。蓝色部分就是允许通过www.7vps.net这个域名访问,主目录指向/var/www/xxx/7vps(这里假设你的网站的根目录是/var/www/xxx/7vps)

方法二:在httpd.conf文件最后面,加入以下代码

  1. NameVirtualHost 11.*.*.*
  2. <VirtualHost 11.*.*.*>
  3. DocumentRoot “/var/www/xxx/default”
  4. ServerName 11.*.*.*
  5. </VirtualHost>
  6. <VirtualHost 11.*.*.*>
  7. DocumentRoot “/var/www/xxx/7vps”
  8. ServerName www.7vps.net
  9. </VirtualHost>

说明:把通过11.*.*.*这个IP直接访问的请求指向/var/www/xxx/default目录下,这可以是个空目录,也可以在里面建一个首页文件,如index.hmtl,首面文件内容可以是一个声明,说明不能通过IP直接访问。

注意:

1. 直接复制粘贴的话可能会带有中文空格,请把这些多余的空格去掉。

2. 如果使用了负载均衡,限制的IP不要写外网IP,请填写内网IP。