一.限制列出目录下内容(目录下的文件没有限制访问)
默认情况下,Apache服务器会列出网站目录中的文件及子目录,这对于用于发布站点的服务器来说是很不安全的,所以需要禁用,修改httpd.conf配置文件中的对应设置即可。
问题的现象:
如果你的网站目录下有一个xxx的文件夹,如果xxx文件夹下没有默认页面(index.*等),当用户使用URL:http://你的网址/xxx/ 访问你的网站的话,Apache会把xxx文件夹里的内容全列出来
实例:(ubuntu 12.04 )
img1目录下面没有index.*等页面,所以访问此目录的时候会列出img1下所有图片等文件,这只需要在配置文件httpd.conf中加入限制即可。
sudo vim /etc/apache2/httpd.conf
<Directory /home/web/img1>
Options FollowSymLinks MultiViews // Options中把 Indexes 这个关键字去掉!
AllowOverride None
Order Deny,Allow
Allow from all
</Directory>
在上面的Options中把Indexes 这个关键字去掉即可;这个关键字会在没有默认页面情况下列出目录下的内容。
二.限制访问目录下的任何文件
<Directory /home/web/abc/>
Options FollowSymLinks MultiViews
AllowOverride None
Order deny,allow
deny from all
Allow from 本机内网ip
Allow from 本机外网ip
Allow from 1.1.1.1
Allow from 2.2.2.2
</Directory>
这样就做到只允许本机和1.1.1.1 和2.2.2.2 访问/home/web/abc/下的文件,一般要把本机的ip地址加到白名单里面哦,不然有可能自己都访问不了了。
三.虚拟主机配置(ubuntu)
<VirtualHost *>
ServerName www.abc.com
ServerAdmin [email protected]
DocumentRoot "/home/web/www"
ErrorLog "/var/log/apache2/wwwerror.log"
CustomLog "/var/log/apache2/www.log" common
JkMountCopy On
</VirtualHost>