我使用 apache 2.4.41,我想拒绝直接访问我服务器上的图像文件。我在 apache 配置文件中实现了以下代码:
SetEnvIf Referer "(www\.)?mywebsite\.net" localreferer
<FilesMatch "\.(jpg|png|gif)$">
Require env localreferer
</FilesMatch>
但是我遇到了一个奇怪的现象。在 Web 浏览器中,当我尝试直接使用 URL 访问图像文件时,我没有收到 403 错误代码(如预期的那样),并且图像会显示出来。但是,当重新加载页面(Mac 上为 F5 或 cmd+R)时,资源会被阻止,并显示 403 错误状态。
当尝试时curl -I
,我得到以下结果:
HTTP/1.1 302 Found
Date: Wed, 06 Jul 2022 14:31:35 GMT
Server: Apache/2.4.41 (Ubuntu)
Location: http://www.mywebsite.net/error/403.php
但我应该得到HTTP/1.1 403 Forbidden
...
有人能帮我解决这个问题吗?提前谢谢了。