Изменить путь по умолчанию, где веб-сервер ищет изображения - PullRequest
0 голосов
/ 27 октября 2010

Я пытаюсь изменить путь по умолчанию или добавить путь, по которому веб-сервер ищет изображения. Мне бы очень хотелось, чтобы решение делало это на PHP, а не в htaccess.

Самый простой пример - попытка «сломать» текущую реализацию, скажем, у меня есть каталог со следующим:

Основной /

  • image.png
  • index.php

В index.php:

<?php
// Change the directory WAY out of current directory
chdir('../../../');
echo getcwd(); // DEFINITELY NOT where image.png is located

?>

<img src="image.png" width="402" height="265" alt="1">
<!-- WHY ARE YOU STILL RENDERING?!?! -->

Дайте мне знать, если вы понимаете мою мысль или если у вас есть какие-либо вопросы.

Спасибо всем! Мэтт Мюллер

Ответы [ 4 ]

5 голосов
/ 27 октября 2010

Я думаю, что вы путаете текущий рабочий каталог в файловой системе сервера и в корне документа веб-сервера.

Когда вы создаете элемент изображения в HTML, он (браузер) ищет источник на основенесколько параметров.

  1. Если путь src является относительным (без косой черты), изображение будет загружаться относительно URL-адреса элемента <base>, если установлен, в противном случае текущий URI
  2. Если путь src является абсолютным, изображение будет загружаться из абсолютного пути из корня документа, например, <img src="/foo/bar/baz.jpg"> будет загружаться из http://example.com/foo/bar/baz.jpg
  3. Если src является абсолютным URI, то оно будет просто загружаться изчто
2 голосов
/ 27 октября 2010

Тег img отправляется клиенту .изменение каталога препроцессора не изменит каталог клиента, так как он привязан к текущей странице, на которой он находится, например http://example.com/.

. Вам потребуется изменить src каждого тега img, чтобы изменить каталог назагляните.

Чтобы избежать путаницы в будущем, у вас может быть функция, которая ставит префикс правильного каталога.

например,

<img src = "<?php echo produceImageURL('image.png'); ?>" width = "402" height = "265" alt = "1" />
1 голос
/ 27 октября 2010

Что такое относительный путь для PHP и относительный путь для страницы - это две разные вещи.

Вы изменили каталог для текущего скрипта PHP. Однако запрашиваемая страница и ее ресурсы по-прежнему относятся к main/index.php

0 голосов
/ 18 июня 2011

jnpcl имел право:

<base href="../../../">

поместите это значение между <head> </head> обычно после <meta />, прежде чем загружать какие-либо файлы

...