【问题标题】:How To Allow Access to Certain File Types but Deny All Others如何允许访问某些文件类型但拒绝所有其他文件类型
【发布时间】:2016-11-25 17:56:44
【问题描述】:

虽然我确信在某处有人问过并回答了这个问题,但我的 Google 和 SO 搜索并没有帮助我解决看似相当简单的问题。

目标:
拒绝访问所有文件类型除了图像。

当前 .htaccess 文件:

<Files *.*>
  Order Deny,Allow
  Deny from all
</Files> 
<FilesMatch "\.(jpg|png|gif|jpeg|JPG|PNG|GIF|JPEG)$">
  Order Deny,Allow
  Allow from all
</FilesMatch> 

我仍然无法(通过浏览器)访问任何图像文件,出现“403 Forbidden”错误。

问题:
1.如何在不重写规则的情况下使其正常工作?
2.我可以像这样组合FilesFilesMatch规则吗?
3.FilesMatch规则是否区分大小写?

【问题讨论】:

    标签: .htaccess


    【解决方案1】:

    您可以通过mod_rewrite 规则轻松实现此目的:

    RewriteEngine On
    
    RewriteCond %{REQUEST_FILENAME} -f
    RewriteRule !\.(jpe?g|png|gif)$ - [NC,F]
    

    使用FilesMatch 你可以这样做:

    Order deny,allow
    
    # first deny all files
    <Files *>
    deny from all
    </Files>
    
    # then allow all image files
    <FilesMatch "(?i)\.(jpe?g|png|gif)$">
      allow from all
    </FilesMatch>
    

    【讨论】:

      猜你喜欢
      • 2015-03-15
      • 2012-09-07
      • 2012-09-02
      • 2013-09-22
      • 1970-01-01
      • 2012-10-24
      • 1970-01-01
      • 2014-12-31
      • 1970-01-01
      相关资源
      最近更新 更多