Как сделать что бы картинки с другого url отображались как свои

Тема в разделе "Как сделать...", создана пользователем lol100, 2 май 2015.

  1. lol100

    lol100 Постоялец

    Регистр.:
    9 авг 2008
    Сообщения:
    109
    Симпатии:
    40
    Подскажите как реализовать что бы картинки с другого url отображались как свои т.е скрыть хотлинкинг
    такое было реализовано в доргене R-dorgen так там было просто мы имели список урлов в тхт файле и php скрипт + htaccess фаил который делал редирект.

    Смысл всего этого извращения в том чтоб можно было отображать ссылки как свои
    http://site.ru/picture.jpg
    открывалось
    http://my-site.ru/pic.jpg

    Вот вроде как есть решение но как собрать в кучу не пойму

    http://searchengines.guru/showpost.php?p=13418939&postcount=8
    http://searchengines.guru/showpost.php?p=13424050&postcount=10
    http://searchengines.guru/showthread.php?t=823057&page=3

    http://searchengines.guru/showthread.php?t=881153
    http://searchengines.guru/showpost.php?p=11926351&postcount=728
     
    Последнее редактирование: 2 май 2015
  2. ARISTARH

    ARISTARH Писатель

    Регистр.:
    5 авг 2009
    Сообщения:
    4
    Симпатии:
    2
    вариант сделать через CURL ! (скачивается картинка с сайта донера и выводится на твоем)
     
  3. DevOrc

    DevOrc Создатель

    Регистр.:
    5 июн 2014
    Сообщения:
    31
    Симпатии:
    10
  4. PapaJoe

    PapaJoe

    Регистр.:
    4 авг 2008
    Сообщения:
    620
    Симпатии:
    312
    можно и без редиректа и без курла и без mod_rewrite

    если вы обращаетесь к скрипту picture.php , к примеру, так: http://site.ru/picture.php/image1.jpg
    то в этом файле переменная $_SERVER['PATH_INFO'] будет иметь значение "/image1.jpg"
    и, как указано в одной из ваших ссылок, скачиваете картинку с сайта-донора и выводите на своем:
    PHP:
    <?php
    header
    ("Content-type: image/jpeg");
    echo 
    file_get_contents("http://my-site.ru".$_SERVER['PATH_INFO']);
    ?>
    profit!
     
    ARISTARH нравится это.
  5. ARISTARH

    ARISTARH Писатель

    Регистр.:
    5 авг 2009
    Сообщения:
    4
    Симпатии:
    2
    но на практике лучше не использовать file_get_contents, а использовать curl. он быстрее и если хост не будет работать, в curl есть timeout. а также советую прописать useragent.
     
  6. DevOrc

    DevOrc Создатель

    Регистр.:
    5 июн 2014
    Сообщения:
    31
    Симпатии:
    10
    Не получится у вас так, будет просто 404... Нужен реврайт как минимум. Кроме того по условиям задачи нет никакого picture.php
     
  7. PapaJoe

    PapaJoe

    Регистр.:
    4 авг 2008
    Сообщения:
    620
    Симпатии:
    312
    вы либо объясните свою точку зрения - почему считаете, что стандартные функционал php приведет к 404 ошибке, либо протестируйте на локалхосте и не пишите глупостей
    по условиям задачи и CURL'а и реврайта нет
    в условиях вопрос и пример для лучшего понимания вопроса
     
  8. DevOrc

    DevOrc Создатель

    Регистр.:
    5 июн 2014
    Сообщения:
    31
    Симпатии:
    10
    Ваш как Вы выразились "стандартный функционал" не совсем стандартный, будет пахать только на Apache+CGI что давно уже не используется. На nginx не завелось, может и была поддержка PATH_INFO когда-то в древних версиях. Так что только реврайт.

    Кроме того, вместо ваших извращений с PATH_INFO, если все-же есть picture.php, то достаточно передать параметром http://site.ru/picture.php?image1.jpg
     
  9. PapaJoe

    PapaJoe

    Регистр.:
    4 авг 2008
    Сообщения:
    620
    Симпатии:
    312
    фантазируете?
    в таком случае адрес всех картинок будет http://site.ru/picture.php и файлы всех картинок будут picture.php
     
  10. DevOrc

    DevOrc Создатель

    Регистр.:
    5 июн 2014
    Сообщения:
    31
    Симпатии:
    10
    Это вы фантазируете. Покажите хоть один движок с чпу без мод реврайта. Если вы где-то вычитали узкое решение и оно вдруг работает, то это не значит что его надо всем советовать.
    Вот интересное исследование поведения PATH_INFO http://stackoverflow.com/questions/279966/php-self-vs-path-info-vs-script-name-vs-request-uri