2016-11-25 96 views
1

雖然我確信這個問題已經被提出並在某個地方得到解答,但我的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禁止」 錯誤。

問題:
1.如何在沒有重寫規則的情況下正常工作?
2.我可以結合FilesFilesMatch這樣的規則嗎?
3. FilesMatch規則是否區分大小寫?

回答

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> 
相關問題