помогите, пожалуйста, с одним вопросом.мне подкинули задачу, сижу голову ломаю..
есть site1.com - мой собственный сайт.
есть картинка 1.jpg на сайте site1.com
еще есть site2.com - чужой сайт
и ссылка вида http://www.site3.com/?sv=1&bgtg=rrr-gggt1_tr_3456_2450как сделать с помощью htaccess следующее:
при посещении сайта2, пользователь видит картинку 1.jpg (размещенная как url с сайта1).
и одновременно ему в куки записывается ссылка http://www.site3.com/?sv=1&bgtg=rrr-gggt1_tr_3456_2450
т.е. создается эффект посещения данной ссылки.
есть решение такого типа:
файл .htaccess на сайте 1 в папке с картинкой:RewriteEngine On
RewriteRule 1.jpg http://www.site3.com/?sv=1&bgtg=rrr-gggt1_tr_3456_2450 [R,L]
но почему-то перестает видеться картинка....
может быть следует еще что-то добавить?какие могу быть решения этой задачи?
Какой счетчик показов рекламы вы хотите накрутить себе?:)
>и одновременно ему в куки записывается ссылка http://www.site3.com/?sv=1&bgtg=rrr-gggt1_tr_3456_2450
>т.е. создается эффект посещения данной ссылки.Думаете запись кук создаст эффект "якобы сходил по той ссылке"?
>Какой счетчик показов рекламы вы хотите накрутить себе?:)
>
>
>>и одновременно ему в куки записывается ссылка http://www.site3.com/?sv=1&bgtg=rrr-gggt1_tr_3456_2450
>>т.е. создается эффект посещения данной ссылки.
>
>Думаете запись кук создаст эффект "якобы сходил по той ссылке"?про счетчики как-то не подумал =)
поразмышляю на досуге =))в моем случае эффект именно такой и достигается - надо просто кратковременное посещение страницы браузером, без отображения.
можно потом что угодно отображать (любую картинку, с любого сайта), важен одинарный редирект по указанной ссылке.
ну так что, будут какие-нибудь идеи? а то у меня уже мозг кипит..
за решение задачи готов вознаградить материально.
>>>и одновременно ему в куки записывается ссылка http://www.site3.com/?sv=1&bgtg=rrr-gggt1_tr_3456_2450
>>>т.е. создается эффект посещения данной ссылки.
>в моем случае эффект именно такой и достигается - надо просто кратковременное
>посещение страницы браузером, без отображения.
>
>можно потом что угодно отображать (любую картинку, с любого сайта), важен одинарный
>редирект по указанной ссылке.
>
>ну так что, будут какие-нибудь идеи? а то у меня уже мозг
>кипит..Чтобы браузер записал куку, сервер, на запрос из браузера, должен ответить с заголовком Set-Cookie. И только после этого браузер куку у себя установит, если это не запрещено какими-либо настройками.
Проблема в том, что у кук есть параметр domain, указывающий домен, для которого эти куки действительны - т.е. в общем случае, позже они будут отдаваться браузером в заголовке Cookie, если запросы идут на этот же домен.
По секурным соображениям, браузер не примет куки, если в них параметр domain равен другому домену, на который запрос не делался. Если domain в куках не задан, он по умолчанию установится браузером, который поставит туда значение домена, с которого эти куки пришли.Жизненный пример: вы в компании знаковых и спрашиваете у них возраст, записывая ответы на бумажку. По именам вы всех знаете. Спрашиваете первого, он отвечает "20", вы у себя пишете "20, так сказал Вася". Спрашиваете второго, он отвечает "30, я тебе говорю" - пишете "30, так сказал Петя". Спрашиваете третьего - "40, так сказал Заратустра" - у себя вы ничего не пишете и идете и спрашиваете следующего. В последнем примере (в зависимости от поведения браузера) вы можете записать "40, так сказал третий", но не "40, так сказал Заратустра".
Т.о., если клиент, заходя на site2.com видит <img src="site1.com/img.jpg"/>, он делает запрос к site1.com. Если на вашем (site1) сайте стоит какой-либо внешний редирект на site3.com, клиент получит причитающийся по этому поводу ответ и сделает новый запрос на site3.com, с ответом от которого установит себе куку. В зависимости от того, что было в ответе от site3, юзер в браузере вместо <img> увидит картинку, либо ничего не увидит.
Если site2 не делает редирект на site3 стандартными ср-вами, а сам (скриптами, напр.) выполняет запрос на site3, получает от него ответ и транслирует его обратно юзеру в браузер, то браузер куку от site3.com не установит, т.к. в ней domain=.site3.com, а он делал запрос к site2.com.
Если мозг кипит сильно, можно его понемногу остужать мокрым компрессом - распечатайте, напр, RFC2616, а каждую прочитанную страницу смачивайте водой и прикладывайте к мозгу. ;)
>[оверквотинг удален]
>Если site2 не делает редирект на site3 стандартными ср-вами, а сам (скриптами,
>напр.) выполняет запрос на site3, получает от него ответ и транслирует
>его обратно юзеру в браузер, то браузер куку от site3.com не
>установит, т.к. в ней domain=.site3.com, а он делал запрос к site2.com.
>
>
>
>Если мозг кипит сильно, можно его понемногу остужать мокрым компрессом - распечатайте,
>напр, RFC2616, а каждую прочитанную страницу смачивайте водой и прикладывайте к
>мозгу. ;)хороший пример про Заратустра =)
сижу вот, весь в мокрых страницах и с влажным мозгом =))"стандартными ср-вами" - это какими в данном случае?
я понял, что "браузер куку от site3.com не установит" просто так..
а как может установить? как бы его уговорить? ))поможет ли здесь mod_rewrite? или что-то еще надо?
..эх..
>"стандартными ср-вами" - это какими в данном случае?не изобретая велосипедов - выдачей стандартных 300-х статусов в ответе. 302, кажись.
Вот вам еще пример из жизни насчет стандартно/нестандартно (к вопросу о редиректах и кто чью куку установит):
вы (браузер) спрашиваете у сервера site2, напр., "где продают самый дешевый воздух".
[стандартно] - site2 вам отвечает "не знаю, спроси у гугля" (редирект). Вы идете к гуглю и спрашиваете то же самое. Гугл отвечает "на земле Франца-Иосифа. И вот тебе бумажка с ответом, чтоб не забыл" (дал куку). Вы берете бумажку и на обратной стороне пишете "гугл сказал" (в следующий раз сможете похвастаться гуглу, что запомнили где самый дешевый воздух, подсмотрев в бумажку) и довольный едете закупаться воздухом.
[по-другому] - site2 вам отвечает "счас, уно моменто", затем своими скриптами-агентами бежит в гуглу, спрашивает то же самое, получает ответ, бумажку, подписывает ее "гугл сказал", возвращается и говорит вам "на земле Франца-Иосифа. И на тебе бумажку, чтоб не забыл". Вы берете бумажку, смотрите на надпись с обратной стороны ("гугл сказал") и со словами "ха, на заборе тоже написано", все перечеркиваете и пишете "site2 сказал". Потом довольный едете закупаться воздухом.
>я понял, что "браузер куку от site3.com не установит" просто так..
>а как может установить? как бы его уговорить? ))
>поможет ли здесь mod_rewrite? или что-то еще надо?Ну представим третью жизненную ситуацию: залогинились вы, эммм, скажем, на w3c.org, а логины/пароли они шлют только по бумажной почте не чаще раза в год и их не восстанавливают. В общем залогинились вы месяц назад, ходите туда каждый день, читаете доки, все знаете. А сегодня внезапно обнаружили сайт vse.pro.internety.ru, на котором написано, что у них есть все те же доки, только по-русски. Ну вы там регалитесь, логинитесь, а оказывается что за доступ к докам надо платить кучу бабла, скачать их плагин в файрфокс и купить у них футболку через смс. Вы плюетесь, идете назад на w3c.org, а там, штозанафиг, вас не авторизуют больше. И пароля вы не помните, месяц назад логинились... Короче, все пропало.
А получилась такая фигня: логинившись на vse.pro.internety.ru, этот сайт дал вам куку, в которой domain=.w3c.org, и написал в ней всякую брехню. А вернувшись на w3c, вы вернули сайту куку (domain=.w3c.org), в которой уже вместо идентификатора сессии какая-то су/**/ка написала брехню.
И после всего этого, вы хотите, чтобы левые сайты гадили в чужих куках?
>..эх..C'est la vie. Кажиcь так это пишется.
>[оверквотинг удален]
>
>не изобретая велосипедов - выдачей стандартных 300-х статусов в ответе. 302, кажись.
>
>
>Вот вам еще пример из жизни насчет стандартно/нестандартно (к вопросу о редиректах
>и кто чью куку установит):
>вы (браузер) спрашиваете у сервера site2, напр., "где продают самый дешевый воздух".
>
>[стандартно] - site2 вам отвечает "не знаю, спроси у гугля" (редирект). Вы
>[по-другому] - site2 вам отвечает "счас, уно моменто", затем своими скриптами-агентамиспасибо за такой развернутый ответ..
и как это "по-другому" реализуется на практике?
>И после всего этого, вы хотите, чтобы левые сайты гадили в чужих
>куках?зачем же так негативно воспринимать этот инструмент.
всякие действия могут идти как во вред, так и во благо.а вот мой вопрос все-равно так и не решился.
может быть как-то надо стимулировать профессионала-специалиста? =)
>спасибо за такой развернутый ответ..
>и как это "по-другому" реализуется на практике?Ну, напр. curl на php, libwww на perl, сокеты...
>зачем же так негативно воспринимать этот инструмент.
>всякие действия могут идти как во вред, так и во благо.В 70-80х годах прошлого века многие вещи, ныне воспринимаемые негативно, проектировались во благо. Даже те же куки в 90х. Но если благими инструментами какой-нибудь гопник может нагадить другим, он это обязательно сделает. А потом какой-нить чел напишет генератор гадилок и после этого толпы подростков-недо-кул-хацкеров будут этими гадилками пользоваться...
>RedirectMatch дает такой же эффект, как и RewriteRule..только RM чуть попроще
>кстати, я тут поэкспериментировал, все-таки через сайт2 действительно куки не передаются..
ЧТД. Чтобы браузер установил себе куку от определенного домена, ему самому необходимо на тот сайт хотя бы сходить (= послать туда запрос и получить ответ). Именно самому браузеру, без посредников.
>как же сделать требуемую задачу?
>а вот мой вопрос все-равно так и не решился.Возможно, я бы вам сказал возможное решение, но что у вас все-таки за затея? Что вы конкретно хотите сделать?
Могу дать только наводку: поглядите на рекламу. Ну тот же гугловский adSense.
>Возможно, я бы вам сказал возможное решение, но что у вас все-таки
>за затея? Что вы конкретно хотите сделать?
>Могу дать только наводку: поглядите на рекламу. Ну тот же гугловский adSense.
>а как можно здесь личные сообщения писать?
или емайл подскажите свой.
>
>>Возможно, я бы вам сказал возможное решение, но что у вас все-таки
>>за затея? Что вы конкретно хотите сделать?
>>Могу дать только наводку: поглядите на рекламу. Ну тот же гугловский adSense.
>>
>
>а как можно здесь личные сообщения писать?
>или емайл подскажите свой.ау-ау =)
Что-то топик затянулся, много лишнего.
Я вот тут еще раз прикинул: если на исходник страницы на site2 (где стоит img src="site1/1.jpg") вы повлиять не можете, то и сделать так, чтобы юзеру в браузер установилась кука с site3 не получится, если только вы у себя на сервере site1 не настроите постоянный редирект с 1.jpg на site3.com/bla?bla=bla&bla=bla. Если site3 на такой запрос отдаст не картинку, на site2 в соответствующем <img> ничего не отобразится, иначе отобразится картинка с site3.
Одновременный показ картинки site1/1.jpg и установка кук c site3 в данной ситуации невозможны. Всё.
>Что-то топик затянулся, много лишнего.
>Я вот тут еще раз прикинул: если на исходник страницы на site2 (где стоит img src="site1/1.jpg") вы повлиять не можете, то и сделать так, чтобы юзеру в браузер установилась кука с site3 не получится, если только вы у себя на сервере site1 не настроите постоянный редирект с 1.jpg на site3.com/bla?bla=bla&bla=bla. Если site3 на такой запрос отдаст не картинку, на site2 в соответствующем <img> ничего не отобразится, иначе отобразится картинка с site3.
>Одновременный показ картинки site1/1.jpg и установка кук c site3 в данной ситуации
>невозможны. Всё.спасибо за ответ..
только вот хотя бы промежуточное решение я не получил, вот топик и затянулся..постоянный редирект с 1.jpg на site3.com/bla?bla=bla&bla=bla
я с помощью htaccess устанавливаю.
помещаю 1.jpg на сайт 2, а кука никакая не ставится..
чего-то в htaccess не так прописал, видимо..там много всяких правил, флагов...я что-то попробовал, что в логику укладывается. результата сколько нибудь удовлетворительного не получил..
вот и блуждаю в сети в поисках какого-нибудь решения....
>спасибо за ответ..
>только вот хотя бы промежуточное решение я не получил, вот топик и
>затянулся..Вполне окончательный вывод на изначальный вопрос я уже приводил.
>>Одновременный показ картинки site1/1.jpg и установка кук c site3 в данной ситуации
>>невозможны. Всё.и без всяких "может быть", "а вдруг"...
>постоянный редирект с 1.jpg на site3.com/bla?bla=bla&bla=bla
>я с помощью htaccess устанавливаю.Редирект (и установку кук) легко проверить, натравив браузер прямиком на картинку (site1.com/1.jpg), а не на страницу, содержащую картинку (site2.com).
Установку кук можно проверить по содержимому ответа от веб-сервера, см. заголовок Set-Cookie. Ответы же можно перехватывать, напр., дополнением LiveHTTPHeaders для файрфокса.
>помещаю 1.jpg на сайт 2, а кука никакая не ставится..Вы путаетесь в показаниях. Изначально вы утверждали, что 1.jpg находился на site1.
>чего-то в htaccess не так прописал, видимо..там много всяких правил, флагов...я что-то
>попробовал, что в логику укладывается. результата сколько нибудь удовлетворительного не получил..RedirectMatch 1.jpg$ http://site3.com?bla=bla
>Редирект (и установку кук) легко проверить, натравив браузер прямиком на картинку (site1.com/1.jpg),
>а не на страницу, содержащую картинку (site2.com).
>Установку кук можно проверить по содержимому ответа от веб-сервера, см. заголовок Set-Cookie.
>Ответы же можно перехватывать, напр., дополнением LiveHTTPHeaders для файрфокса.
>в простейшем случае, можно же реферер с условием поставить..
>
>>помещаю 1.jpg на сайт 2, а кука никакая не ставится..
>
>Вы путаетесь в показаниях. Изначально вы утверждали, что 1.jpg находился на site1.
>чувствую себя на допросе =)
изначальные запротоколированные показания:"при посещении сайта2, пользователь видит картинку 1.jpg (размещенная как url с сайта1)."
>RedirectMatch 1.jpg$ http://site3.com?bla=bla
danke schoen ) hoffentlich kann es vielleicht helfen.
ПС: как там с личными сообщениями или с е-майлом?
>в простейшем случае, можно же реферер с условием поставить..Простите, вечер пятницы после тяжелого трудового будня, друзья, пиво )) Не совсем понимаю, зачем тут реферрер (с условием?) и чего он может дать.. По большому счету реферрер - забота браузера, если он не забьет на этот заголовок.
>>>помещаю 1.jpg на сайт 2, а кука никакая не ставится..
>"при посещении сайта2, пользователь видит картинку 1.jpg (размещенная как url с сайта1)."мухи отдельно, личинки отдельно - картинка на site1, <img src="site1/1.jpg"> - на site2. Или наоборот?
>>RedirectMatch 1.jpg$ http://site3.com?bla=bla
>danke schoen ) hoffentlich kann es vielleicht helfen.urw. i hope so too.
>ПС: как там с личными сообщениями или с е-майлом?"А оно Вам зачем? Спамить будете?" (с) кто-то из друзей своему клиенту :)
>>в простейшем случае, можно же реферер с условием поставить..
>
>Простите, вечер пятницы после тяжелого трудового будня, друзья, пиво )) Не совсем
>понимаю, зачем тут реферрер (с условием?) и чего он может дать..
>По большому счету реферрер - забота браузера, если он не забьет
>на этот заголовок.если реферер пустой, то редирект не происходит =)
>>>>помещаю 1.jpg на сайт 2, а кука никакая не ставится..
>>"при посещении сайта2, пользователь видит картинку 1.jpg (размещенная как url с сайта1)."
>
>мухи отдельно, личинки отдельно - картинка на site1, <img src="site1/1.jpg"> - на site2. Или наоборот?все правильно вы написали. не наоборот.
>>ПС: как там с личными сообщениями или с е-майлом?
>
>"А оно Вам зачем? Спамить будете?" (с) кто-то из друзей своему клиенту
>:)слегка поспамлю по теме. ненавязчиво =)
>если реферер пустой, то редирект не происходит =)Гм. Што за браузер вы юзаете? Реферрер - не указ для редиректа. А статус браузеру важнее, чем иной заголовок в ответе. Эмм, сорри, но если вас послали на три цифры (30Х статусы), то разве вам важно знать какой цвет глаз у пославшего?
>>"А оно Вам зачем? Спамить будете?" (с) кто-то из друзей своему клиенту
>слегка поспамлю по теме. ненавязчиво =)Да спамте уж сюда, иной раз хороший местный модератор лучше spamassassin-а и ч.списка открытых релеев. А мне лень добавлять правила для spamd и возиться с почтой. Вечер пятницы еще продолжается, ну вы ж понимаете... ;)
>Что-то топик затянулся, много лишнего.
>Я вот тут еще раз прикинул: если на исходник страницы на site2 (где стоит img src="site1/1.jpg") вы повлиять не можете, то и сделать так, чтобы юзеру в браузер установилась кука с site3 не получится, если только вы у себя на сервере site1 не настроите постоянный редирект с 1.jpg на site3.com/bla?bla=bla&bla=bla. Если site3 на такой запрос отдаст не картинку, на site2 в соответствующем <img> ничего не отобразится, иначе отобразится картинка с site3.
>Одновременный показ картинки site1/1.jpg и установка кук c site3 в данной ситуации
>невозможны. Всё.ПС: как промежуточный вариант устроит установка кук c site3 через сайт 2, без отображения картинки.
>RewriteEngine On
>RewriteRule 1.jpg http://www.site3.com/?sv=1&bgtg=rrr-gggt1_tr_3456_2450 [R,L]
>
>
>но почему-то перестает видеться картинка....
>может быть следует еще что-то добавить?mod_rewrite локальный. mod_alias - нет. Возможен вариант из mod_rewrite + mod_proxy.
C mod_alias следует добавить такое -
Redirect 1.jpg http://www.site3.com/?sv=1&bgtg=rrr-gggt1_tr_3456_2450
>[оверквотинг удален]
>>
>>
>>но почему-то перестает видеться картинка....
>>может быть следует еще что-то добавить?
>
>mod_rewrite локальный. mod_alias - нет. Возможен вариант из mod_rewrite + mod_proxy.
>
>C mod_alias следует добавить такое -
>
> Redirect 1.jpg http://www.site3.com/?sv=1&bgtg=rrr-gggt1_tr_3456_2450поробовал написать в хтаццесс:
Redirect /1.jpg http://www.site3.com/?sv=1&bgtg=rrr-gggt1_tr_3456_2450
он почему-то перестал даже на локальном компе в уникс формате сохраняться...
сохраню, закрою.
потом открываю, снова вин-формат и изменение формата не вызывает изменения, которые можно сохранить.
на сервере - то же самое...и редирект вообще никакой не работает...
можно, пожалуйста, немного подробнее?
>Redirect /1.jpg http://www.site3.com/?sv=1&bgtg=rrr-gggt1_tr_3456_2450
>он почему-то перестал даже на локальном компе в уникс формате сохраняться...
>и редирект вообще никакой не работает...Такой редирект не сработает, здесь нужен RedirectMatch.
и unix-формат здесь ни при чем.>можно, пожалуйста, немного подробнее?
http://httpd.apache.org/docs/2.2/mod/mod_alias.html#redirect
>>Redirect /1.jpg http://www.site3.com/?sv=1&bgtg=rrr-gggt1_tr_3456_2450
>>он почему-то перестал даже на локальном компе в уникс формате сохраняться...
>>и редирект вообще никакой не работает...
>
>Такой редирект не сработает, здесь нужен RedirectMatch.
>и unix-формат здесь ни при чем.
>
>>можно, пожалуйста, немного подробнее?
>
>http://httpd.apache.org/docs/2.2/mod/mod_alias.html#redirectRedirectMatch дает такой же эффект, как и RewriteRule..
кстати, я тут поэкспериментировал, все-таки через сайт2 действительно куки не передаются..как же сделать требуемую задачу?