设置图像的拒绝规则,现在我的函数无法访问它

设置图像的拒绝规则,现在我的函数无法访问它

我为媒体文件夹中的图片设置了规则。规则如下:

<FilesMatch ".(jpg|jpeg|gif|png|php)$"> Order Deny,Allow Deny from all </FilesMatch>

这将阻止访问者直接访问图像。现在,每当我调用 php 函数来getimagesize()从图像中获取一些数据时,它都会返回一个错误,正如您所猜测的:

无法打开流:HTTP 请求失败!HTTP/1.1 403 禁止于:C:.....

现在我的问题是,为什么其他功能和 CMS 的核心文件可以访问我的媒体并生成缩略图和其他内容,而这样的功能却getimagesize()不能?

我在 CMS 加载过程中调用此函数,因此它具有与 CMS 本身相同的权限。我该如何解决这个问题?我只希望外部访问者无法访问这些文件,而不是我安装的 CMS 本身。

答案1

如果您使用 URL 作为 的参数getimagesize(),请求将转到 Web 服务器,Web 服务器将按照您的要求执行操作,即拒绝访问。

您需要使用文件系统路径作为参数,或者允许您的 Web 服务器的 IP 地址访问这些文件。您可以在 Apache 中看到该 IP 地址access.log

相关内容