Apache-2.2
在 .htaccess 中設置 mp4 和 png 文件的權限
首先,我是 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 之外使其拒絕所有未明確允許的內容。