如何避免apache允许下载某些文件? (例如 .py 和 .sh)
我想避免像这样提供和下载文件
www.site.com/file.sh
www.site.com/file.py
但我尝试这样做
<Files ~ "^\.sh">
Order deny,allow
deny from all
</Files>
<Files ~ "^\.py">
Order deny,allow
deny from all
</Files>
还有这个
<FilesMatch "\.(sh|py)$">
Order deny,allow
deny from all
</FilesMatch>
似乎没有任何作用,我尝试将文件放入
/etc/apache2/apache2.conf
还
/etc/apache2/sites-available/default
什么都行不通,apache 仍然让我下载文件。
答案1
您的文件匹配条款似乎不正确。
<Files ~ "^\.py">
将匹配其名称的文件开始与字符.py
。你会想要
<Files ~ "\.py$">
反而。
但你的FilesMatch
正则表达式看起来是正确的。所以也许问题出在其他地方。也许您的 Apache 仅使用新型访问控制指令?
尝试更换旧式
Order deny,allow
deny from all
与新式等效:
Require all denied