Изображения на моем сервере в защищенном паролем каталоге - PullRequest
0 голосов
/ 04 февраля 2011

У меня есть изображения в защищенном паролем каталоге, но я хочу показать некоторые из этих изображений на обычном незащищенном сайте.

Когда я пытаюсь отобразить их с помощью простого:

<img src ='PASSWORD PROTECTED DIR/Image.jpg">

Он просит ввести имя пользователя и пароль.

Однако я хочу вводить имя пользователя и пароль только тогда, когда я на самом деле перехожу к содержимому внутри каталога, защищенного паролем.

Я использую PHP.

Есть идеи?

Ответы [ 3 ]

1 голос
/ 04 февраля 2011

Если вы используете Apache.

Вы можете исключить некоторые файлы из файла .htaccess, который определяет защиту паролем.

Не проверено, но это должно работать:

<Files "path/to/image.jpg"> 
  Allow from all
  Satisfy any
</Files>

, но гораздо более предпочтительный вариант - просто поместить изображение вне защищенного каталога.

0 голосов
/ 04 февраля 2011

Поскольку это PHP, вы можете сделать это в отдельном файле (imgHandler.php)

<?php
// Allowed files
$allowedfiles["image1"] = "./the_dir/Image.jpg";
$allowedfiles["image2"] = "./the_dir/Image2.jpg";

function getImage($path) {

    echo file_get_contents($allowedfiles[$path]);
}
getImage($_REQUEST['img']);
?>

А затем для изображений, которые вы хотите показать, просто используйте:

<img src="imgHandler.php?img=image1" />

Это не помешает кешированию и намного безопаснее, чем другое решение, которое я представил ранее.

0 голосов
/ 04 февраля 2011

без большого количества хитрого кода, это в основном неразрешимо. Команда <img> говорит, что ваш пользователь собирается запросить эту информацию, которая не сильно отличается от запроса непосредственно.

Вы можете запустить и проверить, как был сделан запрос, отфильтровать, загрузить все изображения через php-файл и т. Д., Но с базовыми инструментами это просто невозможно.

Запрос изображения напрямую или через тег <img> такой же.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...