![.htaccess“全部拒绝”无法正常工作](https://linux22.com/image/753669/.htaccess%E2%80%9C%E5%85%A8%E9%83%A8%E6%8B%92%E7%BB%9D%E2%80%9D%E6%97%A0%E6%B3%95%E6%AD%A3%E5%B8%B8%E5%B7%A5%E4%BD%9C.png)
我正在尝试配置 .htaccess 以拒绝下载证书文件 (.pfx)。我的网站结构如下:
/app
/resources
- cert1.pfx
.htaccess
cert2.pfx
我的.htaccess:
<Files *.pfx>
deny from all
</files>
在目录资源管理器中我看不到任何证书文件。但是当我尝试下载以下内容时:
本地主机/资源/cert1.pfx
证书文件已下载...如果我尝试下载位于根文件夹中的证书:
本地主机/cert2.pfx
它抛出 403 禁止错误。
我不明白为什么其中一个证书被拒绝,而另一个却不行。有什么道理吗?
谢谢。
答案1
您下载了一个证书而没有下载第二个证书的原因与文件有关。简单的 *.pfx 仅匹配该目录中的文件。文档说了以下内容
To address files found in a particular part of the filesystem, the <Files> and <Directory> sections can be combined.
For example, the following configuration will deny access to
/var/web/dir1/private.html,
/var/web/dir1/subdir2/private.html, /var/web/dir1/subdir3/private.html, and any other instance of private.html
found under the /var/web/dir1/ directory.
<Directory "/var/web/dir1">
<Files "private.html">
Require all denied
</Files>
</Directory>
还可以找到一些其他提示这里 此设置指的是 .conf 文件,但在 .htaccess 中,你可以使用 Location。更多解释。
此外,我强烈建议使用“Require”而不是过时的“Allow/Deny”。