Задача - подмена адреса изображения

Тема в разделе "Mod Rewrite / htaccess / ЧПУ", создана пользователем oneetwoo, 2 июн 2010.

Статус темы:
Закрыта.
  1. oneetwoo

    oneetwoo Создатель

    Регистр.:
    2 сен 2008
    Сообщения:
    47
    Симпатии:
    4
    Приветствую, уважаемые.
    Требуется сделать довольно интересную задачу. Только как это сделать, я не знаю. Возможно, уже что-то подобное на nulled обсуждали, но я даже и не представляю, по-какому ключевому слову искать. Если направите в нужное русло, буду очень благодарен!

    Задача: есть сайт 1234.ru. И есть картинка на другом сайте other.com/img.gif. Требуется это картинку сделать локальной для сайта 1234.ru без загрузки на свой сервер и, например, на сервере 1234.ru она будет иметь такой адрес 1234.ru/myadress.gif.

    То есть при загрузке изображения 1234.ru/myadress.gif она фактически будет грузится из other.com/img.gif.

    Основную часть работы я сделал, вот код htaccess:
    Код:
    RewriteEngine on
    RewriteRule myadress.gif http://other.com/img.gif
    Дальше я сделал html файл, в который добавил саму картинку <img src="http://1234.ru/myadress.gif"/>.

    В итоге так и есть, при просмотре исходного кода мы видим http://1234.ru/myadress.gif, что нам и нужно, но если не смотреть исходный код, а просто нажать правой кнопкой на изображение и посмотреть там ее свойства, то мы сможем легко увидеть, что на самом деле она с другого сервера: http://other.com/img.gif

    Вопрос, можно и в свойствах браузера подминить адрес изображения?

    Заранее спасибо!
     
  2. cooldan

    cooldan Создатель

    Регистр.:
    2 июн 2009
    Сообщения:
    11
    Симпатии:
    0
    Попробуйте
    Подробнее о флагах тут.
     
  3. CNiks0N

    CNiks0N lamp.root

    Регистр.:
    28 ноя 2008
    Сообщения:
    230
    Симпатии:
    48
    А если картинок много то лучше направить на PHP файлиг который будет делать fread и echo по ходу скачки
     
    oneetwoo нравится это.
  4. diavolic

    diavolic

    Регистр.:
    17 мар 2010
    Сообщения:
    522
    Симпатии:
    102
    например вот так:
    (на входе путь до картинки)

    PHP:
        function showimage ($img)
        {   
            
    header ("Content-type: image/gif"); 
            
    $fl file_get_contents ("$img");
            print 
    $fl;
        } 
     
    oneetwoo нравится это.
  5. oneetwoo

    oneetwoo Создатель

    Регистр.:
    2 сен 2008
    Сообщения:
    47
    Симпатии:
    4
    Проблема решена, спасибо diavolic и CNiks0N.

    Только небольшое дополнение: мне еще пришлось использовать бибилоиотека Curl для подделки заголовков (как будто они загружаются браузером), отправляемых серверу, при загрузке картинки php файлом, так как иногда сервер выдавал ошибку 404 на определенную картинку без этих заголовков.
     
  6. CNiks0N

    CNiks0N lamp.root

    Регистр.:
    28 ноя 2008
    Сообщения:
    230
    Симпатии:
    48
    Если картинки большие то советую сделать не через Curl, а через сокеты и делать чтение - выдачу.
    Типо такого:

    Код:
    while ( !feof($fp) ) 
    {
     $s fread( $fp, 1024 );
     print $s;
    }
    
    Добавлено через 45 секунд
    В этом случа пользователь начнёт скачивать файл до того как он полностью закачается на сервер
     
Статус темы:
Закрыта.