2010-02-02 166 views
18

我能夠禁止訪問與.htaccess的文件,但我不知道如何禁止多個文件進行查看(直接,不包括).htaccess拒絕訪問特定文件?不止一個

他們.PHP這樣我就可以「T禁用文件類型(如僅在線教程說..)

<FILES ... ? 

</FILES> 

或什麼的。例如‘home.php,file.php,test.php的’我怎麼禁止訪問所有三個帶有該標籤的文件?或類似的,請幫助!

回答

24

如果你想基於正則表達式來排除文件,你可以使用FilesMatch而不是文件,如:

<FilesMatch ^((home|test|file)\.php$|mysecretfolder|asecretpicture\.jpe?g)$> 
... 
</FilesMatch> 
+0

完美,我喜歡每個文件名的管道,正是我想要的。謝謝。 – 2010-02-02 09:43:48

+0

警告:如果你想排除/test.php,而不是/public/test.php或/test.php.bak,使用字符串的開始和結束。 – Residuum 2010-02-02 09:58:16

+1

這是我見過的最有用的一週。誠然,它只是在星期一的下午2點左右,但仍然如此。 – Imperative 2014-03-24 21:08:13

11

看起來你必須排除這些文件逐一:

<files home.php> 
Deny/Allow/Whatever 
</files> 
<files file.php> 
... 

可以在<files>something*使用*.gif,但home.php,file.php和test.php的真的不能分組爲「*」,這可能是唯一的出路。

0

因爲Apache 2.4

<FilesMatch "\.htaccess|config\.php"> 

    Require all denied 

</FilesMatch> 

,而不是

<FilesMatch "\.htaccess|config\.php"> 

    Order allow,deny 
    Deny from all 

</FilesMatch>