apache禁止访问目录列表
apache禁止访问目录列表对于开发人员来说还是蛮实用的,可以迅速查找根目录下的所有项目,但如果一个挂在互联网上的服务器为了提高安全性就必须禁止访问目录列表。

找到Apache 的 httpd.conf 配置文件将:


XML/HTML代码
Options Indexes FollowSymLinks 改为:Options FollowSymLinks 也就是把 Indexes 去掉。   

额外信息:在apache中设置虚拟主机

在IIS中我们可以方便的通过不同的IP或者端口再或者主机头来设置虚拟主机,在apache中也一样可以。
假设有www.123.com和www321.com两个域名,要同时指向一个服务器地址,通过这两个域名访问时,要呈现不同的内容,那就需要设置虚拟主机了。域名设置虚拟主机还需要DNS服务器的支持。

#Vi /etc/apache/httpd.conf

namevirtualhost *
<VirtualHost *>ServerName www.123.com DocumentRoot /var/www/nckz.org </VirtualHost>
<VirtualHost *>ServerName www.321.com DocumentRoot /var/www/nckz.net </VirtualHost>


apache禁止使用IP访问的实现方法
用apache搭建的WEB服务器,如何让网友只能通过设定的域名访问,而不能直接通过服务器的IP地址访问呢,有两个方法可以实现(仅限于我知道的,当然肯定还会有其他方法可以实现),都是修改httpd.conf文件来实现的,下面举例说明。
  方法一:在httpd.conf文件最后面,加入以下代码
     NameVirtualHost 221.*.*.*
     <VirtualHost 221.*.*.*>
     ServerName 221.*.*.*
     <Location />
        Order Allow,Deny
        Deny from all
     </Location>
     </VirtualHost>
    
     <VirtualHost 221.*.*.*>
     DocumentRoot "c:/web"
     ServerName www.webjx.com
     </VirtualHost>
   说明:蓝色部分是实现拒绝直接通过221.*.*.*这个IP的任何访问请求,这时如果你用221.*.*.*访问,会提示拒绝访问。红色部分就是允许通过www.webjx.com这个域名访问,主目录指向c:/web(这里假设你的网站的根目录是c:/web)
   方法二:在httpd.conf文件最后面,加入以下代码
     NameVirtualHost 221.*.*.*
     <VirtualHost 221.*.*.*>
     DocumentRoot "c:/test"
     ServerName 221.*.*.*
     </VirtualHost> 
    
     <VirtualHost 221.*.*.*>
     DocumentRoot "c:/web"
     ServerName www.webjx.com
     </VirtualHost>
    
    
   说明:蓝色部分是把通过221.*.*.*这个IP直接访问的请求指向c:/test目录下,这可以是个空目录,也可以在里面建一个首页文件,如index.hmtl,首面文件内容可以是一个声明,说明不能通过IP直接访问。红色部分的意思跟方法一是一样的。


2. 禁止某些IP访问/只允许某些IP访问
如果要控制禁止某些非法IP访问,在Directory选项控制:

Order allow,deny
Allow from all
Deny from 10.0.0.1 #阻止一个IP
Deny from 192.168.0.0/24 #阻止一个IP段


只允许某些IP访问,适合比如就允许内部或者合作公司访问:

Order deny,allow
Deny from all
All from example.com #允许某个域名
All from 10.0.0.1 #允许一个iP
All from 10.0.0.1 10.0.0.2 #允许多个iP
Allow from 10.1.0.0/255.255.0.0 #允许一个IP段,掩码对
All from 10.0.1 192.168 #允许一个IP段,后面不填写
All from 192.168.0.0/24 #允许一个IP段,网络号
         注:修改后要重启apache