.htaccess 拒绝所有-> 目录索引不起作用(拒绝所有和白名单文件)
Posted
技术标签:
【中文标题】.htaccess 拒绝所有-> 目录索引不起作用(拒绝所有和白名单文件)【英文标题】:.htaccess deny all --> directoryindex not working (deny all & whitelisting files) 【发布时间】:2011-11-30 13:23:26 【问题描述】:我想拒绝访问服务器上的所有文件和目录,但我明确允许的一些文件和目录除外。如何使用 .htaccess 做到这一点?为什么我的方法不起作用?我知道我必须允许 .css、.jpg 等。
DirectoryIndex index.html
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
<Files index.html>
order Allow,Deny
Allow from all
</Files>
编辑:当我尝试访问 index.html 时,上面的 .htaccess 给了我一个“禁止”错误。为什么?
编辑:这似乎可以解决问题。我希望没有留下任何漏洞:
#Disallow everything
<filesmatch "\.+">
Order Allow,Deny
Deny from all
</filesmatch>
#Allow index
<Files index.html>
order Allow,Deny
Allow from all
</Files>
#Allow peripheral files
<FilesMatch "\.(css|png|jpg|js|ico)$">
Order Allow,Deny
Allow from all
</FilesMatch>
【问题讨论】:
第一个指令应该是<FilesMatch ".+">
。 "\.+"
只匹配包含点的文件,但允许没有点的文件。
【参考方案1】:
IP 地址:127.0.0.1
可以访问您的服务器,而其他人则不能。
这部分:
<Files index.html>
order Allow,Deny
Allow from all
</Files>
为所有用户设置对 index.html
的访问权限,但请记住,因为您没有提及其他文件,他们具有默认访问属性。
例如下面的代码允许文件:01.jpeg
或 01.html
或以 xml
结尾的任何内容。
<FilesMatch !"(01\.jpe?g|01\.html|xml)$">
order Allow,Deny
allow from 127.0.0.1
</FilesMatch>
【讨论】:
以上是关于.htaccess 拒绝所有-> 目录索引不起作用(拒绝所有和白名单文件)的主要内容,如果未能解决你的问题,请参考以下文章