Как загружать на сайте картинки, которые находятся не в папке с сайтом

Тема в разделе "PHP", создана пользователем verfaa, 13 окт 2012.

Статус темы:
Закрыта.
Модераторы: latteo
  1. verfaa

    verfaa

    Регистр.:
    29 янв 2007
    Сообщения:
    371
    Симпатии:
    41
    Есть сайт на сервере, который находится в директории
    Код:
    /home/site.com/public_html/
    И есть на сервере папка с картинками, js и php файлами в директории
    Код:
    /home/images/
    Как получить доступ к php-файлам понятно - просто вбиваю вроде include_once "../../images/file.php"; и работает нормально. А вот как быть с картинками и js файлами? Возможно ли сделать, чтобы они грузились по адресу http://site.com/images/kartinka.jpg а подгружались при этом из /home/images/? И возможно ли такое в принципе, может реврайтом как-нить? Или вообще никак такое не сделать?
     
  2. latteo

    latteo Эффективное использование PHP, MySQL

    Moderator
    Регистр.:
    28 фев 2008
    Сообщения:
    1.403
    Симпатии:
    1.185
    Для php есть readfile http://www.php.net/manual/ru/function.readfile.php путь к файлам задай абсолютный или относительный.
    Так же через include можешь и картинки, js выводить, позаботившись об отдаче корректных заголовков http://www.php.net/manual/ru/function.header.php и проверке файла на существование.

    Через реврайты не уверен, но если есть доступ к настройкам апача, что-то такое там должно быть...
     
    verfaa нравится это.
  3. verfaa

    verfaa

    Регистр.:
    29 янв 2007
    Сообщения:
    371
    Симпатии:
    41
    дело в том, что js, jpg, css-файлы которые находятся в папке /home/images/ - это шаблон смарти, из сайта я к нему подключаюсь
    Код:
    $conf['images_path'] = "/home/images/";
    $smarty->assign( "images_path", $conf['images_path'] );
    
    а в шаблоне js, jpg, css-файлы затем уже выводятся в виде {$images_path}/images/bgno.jpg
    Шаблон с файлами разместил выше директории с сайтом для дополнительной безопасности, т.к. даже официальная документация смарти призывает не размещать
    папки с шаблонами в корне сайта. Но как теперь загружать картинки из этой папки, если они находится не в папке с сайтом??
    И в связи с этим ещё один вопрос к нашим php-гуру :) Такое размещение файлов и библиотек смарти (выше корня сайта) повысит хоть как-то безопасность сайта? Есть в этом смысл?
     
    latteo нравится это.
  4. latteo

    latteo Эффективное использование PHP, MySQL

    Moderator
    Регистр.:
    28 фев 2008
    Сообщения:
    1.403
    Симпатии:
    1.185
    js, jpg, css-файлы безболезненно можно перенести в корень сайта.
    Выше директории имеет смысл выносить именно php и им подобные.
    Если не забывать ставить htaccess с запретом на прямой доступ к файлам и уверенны, что хостинг вдруг не перестанет обрабатывать htaccess (такое случается), то можно и смарти и в директории сайта хранить. Вынос выше позволит себя чувствовать чуть спокойней по поводу взлома через баги смарти и его расширений. Но, мне например, не нравится, что сервер позволяет читать файлам сайта читать то, что находится выше директории сайта - дыра в одном сайте даёт злоумышленнику доступ ко всем сайтам на хостинге...
     
    verfaa нравится это.
  5. verfaa

    verfaa

    Регистр.:
    29 янв 2007
    Сообщения:
    371
    Симпатии:
    41
    Спасибо latteo :) , сайт будет размещаться на выделенном сервере, других сайтов на нём не будет. Но я всёже принял решение разместить библиотеки смарти и другие библиотеки, классы, инклуды с функциями вне корня сайта. А для js, jpg, css-файлов уже завёл отдельную папку в директории с сайтом, только единственно неудобно очень для меня будет при разработке шаблона js, jpg, css-файлы кидать в одну папку, а потом делать несколько кликов чтобы загрузить .tpl в другую папку (и так по 50-70 раз в день, пока дизайн доработаю) :) Ну ленивый я.
    И ещё, подскажите как поставить в htaccess запрет на прямой доступ к файлам, спасибо)
     
  6. latteo

    latteo Эффективное использование PHP, MySQL

    Moderator
    Регистр.:
    28 фев 2008
    Сообщения:
    1.403
    Симпатии:
    1.185
    Добавление в htaccess
    Код:
    order deny,allow
    deny from all
    
    Запретит апачу отдавать файлы из этой папки кому бы то ни было, но файлы по прежнему можно будет подключать в скриптах.
     
    verfaa нравится это.
Статус темы:
Закрыта.