虽然我有信心在某处提问并回答,但我的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.我可以合并Files
和FilesMatch
这样的规则吗?
3. FilesMatch
规则是否区分大小写?
答案 0 :(得分: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>