如何避免apache允许下载某些文件?

Her*_*che 3 security permissions apache-httpd

如何避免apache允许下载某些文件?(例如 .py 和 .sh)

我想避免像这样提供和下载文件

www.site.com/file.sh
www.site.com/file.py
Run Code Online (Sandbox Code Playgroud)

但我试过这样做

<Files ~ "^\.sh">
   Order deny,allow
   deny from all
</Files>

<Files ~ "^\.py">
   Order deny,allow
   deny from all
</Files>
Run Code Online (Sandbox Code Playgroud)

还有这个

<FilesMatch "\.(sh|py)$">
   Order deny,allow
   deny from all
</FilesMatch>
Run Code Online (Sandbox Code Playgroud)

似乎没什么用,我试着把文件放进去

/etc/apache2/apache2.conf

/etc/apache2/sites-available/default

没有任何效果,apache 仍然让我下载文件

tel*_*coM 7

您的文件匹配子句似乎不正确。

<Files ~ "^\.py">
Run Code Online (Sandbox Code Playgroud)

将匹配名称以字符开头的文件.py。你会想要

<Files ~ "\.py$">
Run Code Online (Sandbox Code Playgroud)

反而。

但是您的FilesMatch正则表达式看起来是正确的。所以也许问题出在其他地方。也许您的 Apache 仅使用新型访问控制指令?

尝试替换旧样式

Order deny,allow
deny from all
Run Code Online (Sandbox Code Playgroud)

与新式等效:

Require all denied
Run Code Online (Sandbox Code Playgroud)