Apache-2.2

在 .htaccess 中設置 mp4 和 png 文件的權限

  • March 12, 2013

首先,我是 Apache .htaccess 的新手。我有一個伺服器,它必須允許使用者只潛入 mp4 和 png 文件。因此,我一直在閱讀 Apache HTTP Server 文件,並且根據它所說的,我已將其添加到我的 .htaccess 中:

<filesMatch "\.(png|mp4)$">
Order Allow,Deny
Allow from all
</filesMatch>

因為,據我了解,這意味著“對於每個文件,如果其副檔名是 png 或 mp4,則允許所有人獲取它。否則拒絕訪問”。顯然,我錯了,因為這禁止我訪問任何文件/文件夾允許我訪問文件夾和 html 文件(當然還有 png 和 mp4 文件)。那麼,如何只允許訪問 png 和 mp4 文件呢?同樣,我想知道如何使過濾器忽略大小寫。

謝謝。

**編輯:**首先 - 忘了說我需要允許本地主機訪問所有內容(即,拒絕必須只針對非本地主機)。我真的不知道這是預設行為還是有必要以某種方式指示它。同樣,我在進行測試時有一個損壞的文件,所以這就是為什麼我總是“禁止訪問”所有內容。我已經更新了文章。

終於找到解決辦法了:

Order Deny,Allow
Deny from all
Allow from 127.0.0.1
<filesMatch "\.(?i:png|mp4)$">  
Order Allow,Deny
Allow from all
</filesMatch>

有了這個,我告訴“預設情況下,禁止訪問所有內容。然後,如果文件是 PNG 或 MP4 類型(是的,?i:有效地忽略大小寫),則允許從任何地方訪問它。

請注意,我必須將 httpd.conf 中的所有 AllowOverride None 條目覆蓋到 AllowOverride All 中,以便實際考慮 .htaccess (之前它被忽略了)。

嘗試

Order Allow,Deny
<filesMatch "\.(?i:png|mp4)$">  
   Allow from all
</filesMatch>

?i:部分應允許不區分大小寫的匹配,並將順序放在 FilesMatch 之外使其拒絕所有未明確允許的內容。

引用自:https://serverfault.com/questions/486799