Отображение изображений с подменой адреса

Discussion in 'PHP' started by serg-php, 20 Oct 2009.

  1. serg-php

    serg-php Elder - Старейшина

    Joined:
    28 Jan 2008
    Messages:
    313
    Likes Received:
    9
    Reputations:
    0
    Просто нужно, чтобы юзер смотря свойство изображения видилел адрес сайта, на котором он находится, а не адрес откуда картинка грузится!
     
    1 person likes this.
  2. serg-php

    serg-php Elder - Старейшина

    Joined:
    28 Jan 2008
    Messages:
    313
    Likes Received:
    9
    Reputations:
    0
    m0Hze,

    обижаешь!


    Просто есть мои два сайта у одного хостера, в целях экономии дискового пространства ...
     
  3. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    ну дык сложи все картинки, ну я не знаю, в phpmyadmin например, сделай на эту папку chmod 777 и дай символическую ссылку на неё с обоих сайтов:

    ln -s /usr/local/phpmyadmin /var/www/ту_полный_путь_до_сайта_А

    ln -s /usr/local/phpmyadmin /var/www/ту_полный_путь_до_сайта_Б
     
    1 person likes this.
  4. ErrorNeo

    ErrorNeo Elder - Старейшина

    Joined:
    2 May 2009
    Messages:
    923
    Likes Received:
    836
    Reputations:
    402
    у меня был похожий трабл - делал сайт с видео-контентом, сам же "контент" хранил как вы думаете где? правильно, на контакте :cool:
    На самом сайте вешал лишь плеер и транслировал предварительно залитый туда видос с контакта.

    Трабла была в том, чтобы как-то(хотя бы визуально) скрыть то, что видео льется с контакта.

    При лобовом решении ссылка на источник видое содержалась в теле html старницы и это было очень не кошерно.

    На проект забил, но как это проще было решить - все еще интересно)

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

    в общем тема интересна. причем не только для картинок но и для видоса
     
    1 person likes this.
  5. serg-php

    serg-php Elder - Старейшина

    Joined:
    28 Jan 2008
    Messages:
    313
    Likes Received:
    9
    Reputations:
    0
    ErrorNeo, солидарен с тобой!
     
    1 person likes this.
  6. serg-php

    serg-php Elder - Старейшина

    Joined:
    28 Jan 2008
    Messages:
    313
    Likes Received:
    9
    Reputations:
    0
    А мене жесткие есть решения?

    Через мод_рерайт?
     
  7. serg-php

    serg-php Elder - Старейшина

    Joined:
    28 Jan 2008
    Messages:
    313
    Likes Received:
    9
    Reputations:
    0
    m0Hze,

    а вот и не прав,

    мне нужно скрыть адреса картинок от моих модеров, чтобы они не видели основного сайта!
     
  8. imajo.ati

    imajo.ati Banned

    Joined:
    21 Feb 2008
    Messages:
    232
    Likes Received:
    62
    Reputations:
    8
    RewriteEngine On
    RewriteBase /
    RewriteRule ^test\.png$ http://www.google.ru/intl/en_com/images/logo_plain.png

    добавь это в httpd.conf или в AccessFileName в корень

    теперь создай html файл с содержимым:
    PHP:
    <img src="http://твой_сайт.ру/test.png" alt="">
    и зайди на него.



    не забудь включить mod_rewrite в апаче
     
    #28 imajo.ati, 21 Oct 2009
    Last edited: 21 Oct 2009
  9. Gray_Wolf

    Gray_Wolf Active Member

    Joined:
    7 Mar 2009
    Messages:
    377
    Likes Received:
    135
    Reputations:
    10
    Дак вариант Пашкеллы подразумевает что вводя урлы
    www.site1.com/img
    и
    www.site2.ru/img
    Мы будем попадать в одну и туже физическую папку, но УРЛы можно использовать разные. (т.е. делаем что-то типо ярлыков)

    И почитайте инфу о жестких ссылка в Линуксе...

    Линукс позволяет создавать жесткие и символичесские ссылки на файлы и каталоги.
    Символические ссылки это теже ярлыки в винде, а жесткие ссылки это копия файла(каталога) которая ссылается на тот-же самый участок памяти в файловой системе что и оригинал.

    Т.е. мы делаем точную копию файла(каталога) который не занимает доп. места на харде, но может иметь другое имя и адрес.

    Т.к. это всёже ссылка а не копия, то изменение данных сказывается и на оригинале.


    Пашкелла предложил сделать 2 ссылки на разных сайтах ссылающихся на 1 каталог, так что адреса сайтов можно использовать любые, если они находятся внутри одной файловой системы.
     
    #29 Gray_Wolf, 21 Oct 2009
    Last edited: 21 Oct 2009
  10. serg-php

    serg-php Elder - Старейшина

    Joined:
    28 Jan 2008
    Messages:
    313
    Likes Received:
    9
    Reputations:
    0
    Gray_Wolf,

    идея хорошая!

    Только будет ли она работать на шаред хостинге?
     
  11. serg-php

    serg-php Elder - Старейшина

    Joined:
    28 Jan 2008
    Messages:
    313
    Likes Received:
    9
    Reputations:
    0
    imajo.ati,

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

    Насколько возрастет нагрузка на сервер, чем при традиционных ссылках?
     
  12. Gray_Wolf

    Gray_Wolf Active Member

    Joined:
    7 Mar 2009
    Messages:
    377
    Likes Received:
    135
    Reputations:
    10
    Для работы необходимы следующие условия:
    1. Линукс на хостинге.
    2. Доступ по SSH или возможность выполнения функции system() из PHP.
    Т.е. подойдут 95% хостингов.

    P.S.: писать по 2 поста подряд здесь запрещено, используйте кнопку Edit.
     
  13. serg-php

    serg-php Elder - Старейшина

    Joined:
    28 Jan 2008
    Messages:
    313
    Likes Received:
    9
    Reputations:
    0
    Gray_Wolf

    а на денвере так сделать можно для тестинга?
     
  14. gisTy

    gisTy Elder - Старейшина

    Joined:
    24 May 2008
    Messages:
    432
    Likes Received:
    160
    Reputations:
    27
    под виндоус символические ссылки? можно, если поставить линукс
    а вариант пашкелы будет работать при сэйф моде и оупэн бэйсдир?
     
  15. serg-php

    serg-php Elder - Старейшина

    Joined:
    28 Jan 2008
    Messages:
    313
    Likes Received:
    9
    Reputations:
    0
    Значит, есть 2 варианта:

    1) через скрипт;
    2) через жесткие ссылки;


    Только вот вопрос:

    почему конструкция мод_рерайт не пашет

    RewriteRule ^images/(.*)$ http://site.com/images/$1 [R,L]

    Картинки-то подгружаются, но в их св-вах путь http://site.com/images/

    а не http://site2.com/images/
     
  16. Gray_Wolf

    Gray_Wolf Active Member

    Joined:
    7 Mar 2009
    Messages:
    377
    Likes Received:
    135
    Reputations:
    10
    Ну какбы файловой системе вообще пофиг на настройки апачей и прочей лабуды...
    Переименование папки по сути то-же самое создание новой жесткой и удаление старой, в данном же случае мы просто неудаляем старую ссылку.

    В файловой системе любой файл, каталог или подкаталог это всеголиш ссылка на участок харда и ничего более, взгляните на это под таким углом и подобные вопросы у вас не возникнут.
     
  17. gisTy

    gisTy Elder - Старейшина

    Joined:
    24 May 2008
    Messages:
    432
    Likes Received:
    160
    Reputations:
    27
    а как же права? или на них тоже похер?
     
  18. Gray_Wolf

    Gray_Wolf Active Member

    Joined:
    7 Mar 2009
    Messages:
    377
    Likes Received:
    135
    Reputations:
    10
    С правами всё так-же как еслибы ваши файлы лежали по новому адресу.
     
  19. Dr1ver

    Dr1ver Elder - Старейшина

    Joined:
    20 Aug 2008
    Messages:
    83
    Likes Received:
    80
    Reputations:
    14
    Сделать можно но сайт Б будет создавать нагрузку
    Опишу тока принцип.
    1) Через мод реврайт на сайте Б, добиться, чтобы ссылки типа /images/img.jpg (gif, png) ссылались на PHP скрипт.
    2) Php скрипт читает адрес Б/images/img.jpg запрашивает файл с сайта А и выдает на сайте Б. (корректные хедеры для всех видов картинок написать надо будет)
     
    4 people like this.
  20. Deathdreams

    Deathdreams Elder - Старейшина

    Joined:
    8 Nov 2008
    Messages:
    342
    Likes Received:
    116
    Reputations:
    5
    Dr1ver
    Угараешь, паренёк.

    Твой 1 вариант равен второму.
    Плюс все твои варианты сказали выше.