【问题标题】:.htaccess deny all --> directoryindex not working (deny all & whitelisting files).htaccess 拒绝所有-> 目录索引不起作用(拒绝所有和白名单文件)
【发布时间】: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>

【问题讨论】:

  • 第一个指令应该是&lt;FilesMatch ".+"&gt;"\.+" 只匹配包含点的文件,但允许没有点的文件。

标签: apache .htaccess


【解决方案1】:

IP 地址:127.0.0.1 可以访问您的服务器,而其他人则不能。
这部分:

<Files index.html>
  order Allow,Deny
  Allow from all
</Files>

为所有用户设置对 index.html 的访问权限,但请记住,因为您没有提及其他文件,他们具有默认访问属性。
例如下面的代码允许文件:01.jpeg01.html 或以 xml 结尾的任何内容。

 <FilesMatch      !"(01\.jpe?g|01\.html|xml)$"> 
  order Allow,Deny
  allow from 127.0.0.1


</FilesMatch>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-30
    • 2012-03-19
    • 2015-09-13
    • 2018-06-21
    • 1970-01-01
    相关资源
    最近更新 更多