【发布时间】: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 ".+">。"\.+"只匹配包含点的文件,但允许没有点的文件。