.htaccess запретить со всех остановок доступ на сайт

У меня есть файл PHP: index.php в корне моего веб-каталога (что-то вроде):

<?php
echo '<div>
<img src="https://web-answers.ru/wp-content/uploads/2019/02/test.png">
</div>';
?>

И у меня есть файл .htaccess в каталоге images /, который содержит следующее:

deny from all

Насколько я понимаю, это должно позволить <img src="https://web-answers.ru/wp-content/uploads/2019/02/test.png"> будет отображаться на веб-странице, но не должен позволять пользователю получить доступ к test.png подайте непосредственно следующим образом: www.example.com/images/test.png (Я ожидаю, что это вызовет запрещенную ошибку или что-то в этом роде).

К сожалению, вышеизложенное приводит к тому, что изображение не отображается на index.php а также изображение, не отображаемое по прямой ссылке: www.example.com/images/test.png, Если я удаляю файл .htaccess, изображение отображается нормально, но к нему можно получить доступ по прямому URL.

Любые идеи, почему это не будет работать, как ожидалось?

0

Решение

В Yo / u отсутствует большое различие между блокировкой доступа к включенному файлу php (который обрабатывается на стороне сервера) и к изображению, на которое ссылается php. Самое простое решение, которое я могу придумать, — это чтобы ваш php-файл открыл изображение и вернул его как изображение.

Что-то вроде:

<?php
//Do whatever checking you want
$im = file_get_contents("images/example.png");
header("Content-type: image/jpeg");
echo $im;
?>

Обратите внимание, что это по-прежнему позволяет кому-то, кто знает имя php-файла, получить изображение и т.д .; все, что это делает, дает вам место для проверки в php-коде (примером проверки будет проверка http_referer, если вы хотите заблокировать людей от «горячих ссылок» на изображения)

1

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

Других решений пока нет …

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