.htaccess“全部拒绝”无法正常工作

.htaccess“全部拒绝”无法正常工作

我正在尝试配置 .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”。

相关内容