Просмотр полной версии : Отображение изображений с подменой адреса
serg-php
20.10.2009, 22:21
Столкнулся с проблемой скрытия адреса изображения.
Есть сайт А и сайт Б
На сайте А имеются картинки. Нужно сделать так, чтобы на сайте Б отбражались эти картинки, но не было видно, что они подгружаются с другого сайта.
Прмер, адрес при просмотре свойств изображения пишется его адрес такой _http://А.ru/images/123.jpg
а его фактический _http://Б.ru/images/123.jpg
Можно ли это решить через mod_rewrite
Покажите пример!
Всем респект!
Как вариант могу предложить:
в .htaccess
RewriteEngine On
RewriteRule ^123.jpg 123.php [L]
А в 123.php сделать что-то с gd2 то есть подгрузить или еще как-то,вот не определился я еще со вторым. . может сам чего-нибудь придумаешь .. скажи и мне
serg-php
20.10.2009, 22:27
qW1zer,
впринципе это идея!
Создаём скрипт
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_,
сейчас проверим!
Byte_
Хороший вариант,но:
Кто ищет тот всегда найдет. . .
То есть,проснифать в принципе кому надо - будет легко . . .
Но в библиотеку свою добавлю
serg-php
20.10.2009, 22:36
qW1zer,
идея библиотеки звучит супер!
Все, что нужно, всегда под рукой!
serg-php
20.10.2009, 22:43
А другие варианты есть?
У меня проблема внедрения!
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
Запускаю, но адреса не изменились и имеют вид 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,
ну ты и загрнул!
Масштабно!
$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
Просто нужно, чтобы юзер смотря свойство изображения видилел адрес сайта, на котором он находится, а не адрес откуда картинка грузится!
Пиздиш контент? Ублюдаг :(
/*Как уже сказали выше, пизже всего через мод-реврайт */
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/ту_полный_путь_до_сайта_Б
ну дык сложи все картинки, ну я не знаю, в 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 старницы и это было очень не кошерно.
На проект забил, но как это проще было решить - все еще интересно)
Друган советовал создать какой-то типа буфер на другом сайте, в результате чего источником видео бы как бэ был мой другой сайт а совсем не контакт...
в общем тема интересна. причем не только для картинок но и для видоса
у меня был похожий трабл - делал сайт с видео-контентом, сам же "контент" хранил как вы думаете где? правильно, на контакте :cool:
На самом сайте вешал лишь плеер и транслировал предварительно залитый туда видос с контакта.
Трабла была в том, чтобы как-то(хотя бы визуально) скрыть то, что видео льется с контакта.
При лобовом решении ссылка на источник видое содержалась в теле html старницы и это было очень не кошерно.
На проект забил, но как это проще было решить - все еще интересно)
Друган советовал создать какой-то типа буфер на другом сайте, в результате чего источником видео бы как бэ был мой другой сайт а совсем не контакт...
в общем тема интересна. причем не только для картинок но и для видоса
Во тут можно "буфером" назвать тот скрип,что дали выше.Который качает и налету выводит видео с вк.Видео на сайте не задерживаеться,но это ояебу убьет систему при 1к просмотре ^_^
serg-php
21.10.2009, 00:56
ErrorNeo, солидарен с тобой!
serg-php
21.10.2009, 00:57
Который качает и налету выводит видео с вк.Видео на сайте не задерживаеться,но это ояебу убьет систему при 1к просмотре ^
А мене жесткие есть решения?
Через мод_рерайт?
А мене жесткие есть решения?
Через мод_рерайт?
Самый пезджый вариант от пашкелы.Все остальное - унылое говнецо.
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
а на денвере так сделать можно для тестинга?
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
а вариант пашкелы будет работать при сэйф моде и оупэн бэйсдир?
Ну какбы файловой системе вообще пофиг на настройки апачей и прочей лабуды...
Переименование папки по сути то-же самое создание новой жесткой и удаление старой, в данном же случае мы просто неудаляем старую ссылку.
В файловой системе любой файл, каталог или подкаталог это всеголиш ссылка на участок харда и ничего более, взгляните на это под таким углом и подобные вопросы у вас не возникнут.
Ну какбы файловой системе вообще пофиг на настройки апачей и прочей лабуды...
Переименование папки по сути то-же самое создание новой жесткой и удаление старой, в данном же случае мы просто неудаляем старую ссылку.
В файловой системе любой файл, каталог или подкаталог это всеголиш ссылка на участок харда и ничего более, взгляните на это под таким углом и подобные вопросы у вас не возникнут.
а как же права? или на них тоже похер?
Gray_Wolf
22.10.2009, 02:25
С правами всё так-же как еслибы ваши файлы лежали по новому адресу.
Сделать можно но сайт Б будет создавать нагрузку
Опишу тока принцип.
1) Через мод реврайт на сайте Б, добиться, чтобы ссылки типа /images/img.jpg (gif, png) ссылались на PHP скрипт.
2) Php скрипт читает адрес Б/images/img.jpg запрашивает файл с сайта А и выдает на сайте Б. (корректные хедеры для всех видов картинок написать надо будет)
Deathdreams
22.10.2009, 19:50
Dr1ver
Угараешь, паренёк.
Твой 1 вариант равен второму.
Плюс все твои варианты сказали выше.
это один вариант, 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]
Теперь, как определить какая будет нагрузка на сервер, если таким методом делать?
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot