在apache里面 httpd.conf里面有一个配置块
#
# Deny access to the entirety of your server's filesystem. You must
# explicitly permit access to web content directories in other
# <Directory> blocks below.
#
DocumentRoot "xxxxx"
<Directory />
Options +Indexes +FollowSymLinks +ExecCGI
AllowOverride All
Order allow,deny
Allow from all
Require all granted
Options FollowSymLinks
</Directory>
主要就是用来控制目录访问啊权限什么的。没定义好 就可能是安全隐患了
Indexes 就是设置的允许目录浏览。就是指定了访问某个目录但是没有指定具体文件,并且目录不存在默认文档,那就会返回真个目录内容。
AllowOverride none 是设置.htaccess文件中的指令类型 (none 表示禁止使用.htaccess来处理)
AllowOverride选项用于定义位于每个目录下.htaccess(访问控制)文件中的指令类型。基于安全和效率的原因,虽然可以通 过.htaccess来设置目录的访问权限,但应尽可能地避免使用.htaccess文件,所以一般将AllowOverride设置为”None”,即 禁止使用.htaccess文件,而将目录权限的设置放在主配置文件httpd.conf的<Directory> 和</Directory>语句之间。
因为我们的配置是AllowOverride All 那么表示启用.htaccess文件
再来看一下 .htaccess里面关键内容
RewriteRule ^(.*)App/Tpl/(.+).html$ / [NC,F]
这里NC表示 ignore case F表示FORBIDEN 就是禁止。
也就是说访问 App/Tpl *下面的html都是被禁止的。因为这里面的html很可能是模板
AllowOverride 设置为 none 或者 .htaccess去掉 RewriteRule ^(.*)App/Tpl/(.+).html$ / [NC,F] 那么所有的Html文件就都可以被访问了。