После добавления ограничения IP я получаю «ошибку 403» для get_file_contents

У меня есть следующий код, который определяет, является ли изображение SVG или нет, чтобы оно отображало источник, если оно есть (SVG может затем быть окрашен с помощью CSS):

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

Это работало нормально, пока я не добавил ограничение IP в htaccess, когда я получил следующую ошибку:

file_get_contents (http://example.com/images/icons/icon-email.svg): не удалось открыть поток: ошибка HTTP-запроса! HTTP / 1.1 403 Запрещено

Я пробовал решения, которые предлагают подделку реального запроса браузера; они не работают.

Есть ли другое решение для этого или другой подход, который я мог бы использовать для отображения SVG?

2

Решение

Вы получаете ошибку 403, потому что у php нет разрешения на открытие этого файла. Какой ваш точный код для блокировки IP-адресов?
Не используйте URL, когда он находится на вашем собственном сервере, просто используйте абсолютный путь.

0

Другие решения

У меня была та же проблема и, наконец, выяснил, что случилось. Мой провайдер VPS вставил «запретить всем» в .htaccess после добавления огромного списка «разрешенных от» IP-адресов.

Они сделали это из-за атаки бонета на сайт.

0

По вопросам рекламы [email protected]