PDA

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


serg-php
20.10.2009, 22:21
Столкнулся с проблемой скрытия адреса изображения.

Есть сайт А и сайт Б

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

Прмер, адрес при просмотре свойств изображения пишется его адрес такой _http://А.ru/images/123.jpg

а его фактический _http://Б.ru/images/123.jpg

Можно ли это решить через mod_rewrite

Покажите пример!

Всем респект!

qW1zer
20.10.2009, 22:25
Как вариант могу предложить:
в .htaccess

RewriteEngine On
RewriteRule ^123.jpg 123.php [L]

А в 123.php сделать что-то с gd2 то есть подгрузить или еще как-то,вот не определился я еще со вторым. . может сам чего-нибудь придумаешь .. скажи и мне

serg-php
20.10.2009, 22:27
qW1zer,

впринципе это идея!

Byte_
20.10.2009, 22:27
Создаём скрипт
img.php
<?
$site_url = 'http://a.ru';
echo file_get_contents($site_url.$_GET['url']);
?>
теперь наши картинки выглядят так:
<img src="/img.php?url=/logo.png" />

serg-php
20.10.2009, 22:29
У меня был такой вариант

RewriteRule ^images/(.*)$ http://mysite.ru/images/$1 [L]

Правда, на сайте http://hissite.ru

В свойсвах картинки отображалось,


http://mysite.ru/images/картинка.jpg

serg-php
20.10.2009, 22:31
Byte_,


сейчас проверим!

qW1zer
20.10.2009, 22:32
Byte_
Хороший вариант,но:
Кто ищет тот всегда найдет. . .
То есть,проснифать в принципе кому надо - будет легко . . .
Но в библиотеку свою добавлю

serg-php
20.10.2009, 22:36
qW1zer,

идея библиотеки звучит супер!

Все, что нужно, всегда под рукой!

serg-php
20.10.2009, 22:43
А другие варианты есть?

У меня проблема внедрения!

Byte_
20.10.2009, 22:52
serg-php, можно узнать, чем мой вариант плох?
он позволяет 100% скрыть url ресурса с которого берутся картинки.
если не нравятся урлы вида ?url=, настройте RewriteRule.
RewriteRule ^images/(.*)$ /img.php?url=$1 [L]

serg-php
20.10.2009, 22:59
Создаём скрипт
img.php
<?
$site_url = 'http://a.ru';
echo file_get_contents($site_url.$_GET['url']);
?>
теперь наши картинки выглядят так:
<img src="/img.php?url=/logo.png" />

Такую конструкцию оказалось сложно внедрить в статический шаблон смарту!

serg-php
20.10.2009, 23:06
В урле картинки пишу <img src="/img.php?url=/logo.png" />

далее создаю файл img.php
<?
$site_url = 'http://a.ru';
echo file_get_contents($site_url.$_GET['url']);
?>
<img src="/img.php?url=/logo.png" />

Запускаю, но адреса не изменились и имеют вид http://localhost/img.php?url=/logo.png

Byte_
20.10.2009, 23:09
Запускаю, но адреса не изменились и имеют вид http://localhost/img.php?url=/logo.png
RewriteRule ^images/(.*)$ /img.php?url=$1 [L]
теперь путь выглядит как /images/logo.png

зы:
в файле img.php
<img src="/img.php?url=/logo.png" />
!не надо!
это в шаблоне должно быть только ;)

serg-php
20.10.2009, 23:13
в файле img.php
<img src="/img.php?url=/logo.png" />
!не надо!

А я и не писал!

serg-php
20.10.2009, 23:15
Создал файл test.php ,

положил в него


<?

echo "<img src='/img.php?url=/logo.png' />";

?>

создал файл

img.php

<?
$site_url = 'http://mysite.com';
echo file_get_contents($site_url.$_GET['url']);
?>


Что-то параметр не передается!

Pashkela
20.10.2009, 23:22
По сабжу - можно, скачать картинки предварительно себе, в чем трабл не понял. Вопрос идентичен такому:

"Могу ли я замутить у себя яндекс, чтобы типо яндекс, но все бралось оттуда, ламос бы тупил по черному и не мог видеть в картинках ссылок на яндекс, и сервер чтобы не упал через 2,5 секунды"

PS: Могу подогнать много клевых картинок, посетителей эдак на 100 000 000 :)

serg-php
20.10.2009, 23:24
Pashkela,

ну ты и загрнул!

Масштабно!

Byte_
20.10.2009, 23:26
$site_url = 'http://mysite.com';
попробуй $site_url = 'http://mysite.com/';

Pashkela
20.10.2009, 23:30
На самом деле лучше с других сайтов брать pdf-доки и предлагать посетителям ознакомиться с уникальным содержимым. Так более сеошно

serg-php
20.10.2009, 23:31
Pashkela, мне не для сео!

serg-php
20.10.2009, 23:32
Просто нужно, чтобы юзер смотря свойство изображения видилел адрес сайта, на котором он находится, а не адрес откуда картинка грузится!

m0Hze
21.10.2009, 00:20
Пиздиш контент? Ублюдаг :(

m0Hze
21.10.2009, 00:21
/*Как уже сказали выше, пизже всего через мод-реврайт */

serg-php
21.10.2009, 00:27
m0Hze,

обижаешь!


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

Pashkela
21.10.2009, 00:36
ну дык сложи все картинки, ну я не знаю, в phpmyadmin например, сделай на эту папку chmod 777 и дай символическую ссылку на неё с обоих сайтов:

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

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

m0Hze
21.10.2009, 00:40
ну дык сложи все картинки, ну я не знаю, в phpmyadmin например, сделай на эту папку chmod 777 и дай символическую ссылку на неё с обоих сайтов:

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

ln -s /usr/local/phpmyadmin /var/www/ту_полный_путь_до_сайта_Б
+10
Паша истену глоголед

ErrorNeo
21.10.2009, 00:48
у меня был похожий трабл - делал сайт с видео-контентом, сам же "контент" хранил как вы думаете где? правильно, на контакте :cool:
На самом сайте вешал лишь плеер и транслировал предварительно залитый туда видос с контакта.

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

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

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

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

в общем тема интересна. причем не только для картинок но и для видоса

m0Hze
21.10.2009, 00:51
у меня был похожий трабл - делал сайт с видео-контентом, сам же "контент" хранил как вы думаете где? правильно, на контакте :cool:
На самом сайте вешал лишь плеер и транслировал предварительно залитый туда видос с контакта.

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

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

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

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

в общем тема интересна. причем не только для картинок но и для видоса
Во тут можно "буфером" назвать тот скрип,что дали выше.Который качает и налету выводит видео с вк.Видео на сайте не задерживаеться,но это ояебу убьет систему при 1к просмотре ^_^

serg-php
21.10.2009, 00:56
ErrorNeo, солидарен с тобой!

serg-php
21.10.2009, 00:57
Который качает и налету выводит видео с вк.Видео на сайте не задерживаеться,но это ояебу убьет систему при 1к просмотре ^

А мене жесткие есть решения?

Через мод_рерайт?

m0Hze
21.10.2009, 01:07
А мене жесткие есть решения?

Через мод_рерайт?
Самый пезджый вариант от пашкелы.Все остальное - унылое говнецо.

serg-php
21.10.2009, 01:19
m0Hze,

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

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

imajo.ati
21.10.2009, 03:57
RewriteEngine On
RewriteBase /
RewriteRule ^test\.png$ http://www.google.ru/intl/en_com/images/logo_plain.png

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

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

и зайди на него.



не забудь включить mod_rewrite в апаче

Gray_Wolf
21.10.2009, 09:32
m0Hze,

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

мне нужно скрыть адреса картинок от моих модеров, чтобы они не видели основного сайта!
Дак вариант Пашкеллы подразумевает что вводя урлы
www.site1.com/img
и
www.site2.ru/img
Мы будем попадать в одну и туже физическую папку, но УРЛы можно использовать разные. (т.е. делаем что-то типо ярлыков)

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

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

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

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


Пашкелла предложил сделать 2 ссылки на разных сайтах ссылающихся на 1 каталог, так что адреса сайтов можно использовать любые, если они находятся внутри одной файловой системы.

serg-php
21.10.2009, 22:29
Gray_Wolf,

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

Только будет ли она работать на шаред хостинге?

serg-php
21.10.2009, 22:32
imajo.ati,

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

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

Gray_Wolf
21.10.2009, 23:01
Gray_Wolf,

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

Только будет ли она работать на шаред хостинге?
Для работы необходимы следующие условия:
1. Линукс на хостинге.
2. Доступ по SSH или возможность выполнения функции system() из PHP.
Т.е. подойдут 95% хостингов.

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

serg-php
21.10.2009, 23:35
Gray_Wolf

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

gisTy
22.10.2009, 00:35
Gray_Wolf

а на денвере так сделать можно для тестинга?
под виндоус символические ссылки? можно, если поставить линукс
а вариант пашкелы будет работать при сэйф моде и оупэн бэйсдир?

serg-php
22.10.2009, 00:44
Значит, есть 2 варианта:

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


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

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

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

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

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

Gray_Wolf
22.10.2009, 01:58
а вариант пашкелы будет работать при сэйф моде и оупэн бэйсдир?
Ну какбы файловой системе вообще пофиг на настройки апачей и прочей лабуды...
Переименование папки по сути то-же самое создание новой жесткой и удаление старой, в данном же случае мы просто неудаляем старую ссылку.

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

gisTy
22.10.2009, 02:19
Ну какбы файловой системе вообще пофиг на настройки апачей и прочей лабуды...
Переименование папки по сути то-же самое создание новой жесткой и удаление старой, в данном же случае мы просто неудаляем старую ссылку.

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

Gray_Wolf
22.10.2009, 02:25
С правами всё так-же как еслибы ваши файлы лежали по новому адресу.

Dr1ver
22.10.2009, 03:01
Сделать можно но сайт Б будет создавать нагрузку
Опишу тока принцип.
1) Через мод реврайт на сайте Б, добиться, чтобы ссылки типа /images/img.jpg (gif, png) ссылались на PHP скрипт.
2) Php скрипт читает адрес Б/images/img.jpg запрашивает файл с сайта А и выдает на сайте Б. (корректные хедеры для всех видов картинок написать надо будет)

Deathdreams
22.10.2009, 19:50
Dr1ver
Угараешь, паренёк.

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

Dr1ver
23.10.2009, 18:00
это один вариант, modrewrite+php скрипт. А считывать PHP скриптом Б/images/img.jpg вроде никто не предлагал. Предлагали считывать Б/script.php?img=img.jpg

serg-php
23.10.2009, 20:05
serg-php, можно узнать, чем мой вариант плох?
он позволяет 100% скрыть url ресурса с которого берутся картинки.
если не нравятся урлы вида ?url=, настройте RewriteRule.
RewriteRule ^images/(.*)$ /img.php?url=$1 [L]

Теперь, как определить какая будет нагрузка на сервер, если таким методом делать?