2

我有以下代码来确定图像是否为 SVG,以便它显示源(然后可以使用 CSS 为 SVG 着色):

if (strpos('url_to_an_image', '.svg') !== false) {
    echo file_get_contents('url_to_an_image'); 
} else {
    echo '<img src="url_to_an_image" />';
}

这工作正常,直到我在 htaccess 中添加 IP 限制时收到以下错误:

file_get_contents(http://example.com/images/icons/icon-email.svg):打开流失败:HTTP请求失败!HTTP/1.1 403 禁止

我已经尝试过建议欺骗真实浏览器请求的解决方案;他们不工作。

是否有另一种解决方案,或者我可以用来显示 SVG 的另一种方法?

4

2 回答 2

1

我有同样的问题,最后发现发生了什么。我的 VPS 提供商在放入大量“允许来自”IP 地址后,在 .htaccess 中放入“全部拒绝”。

他们这样做是因为网站上的一次骨灰攻击。

于 2018-01-04T12:09:59.440 回答
0

您收到 403 错误,因为 php 似乎没有打开此文件的权限。您阻止 IP 的确切代码是什么?在您自己的服务器上时不要使用 URL,只需使用绝对路径即可。

于 2018-01-04T11:39:09.820 回答