|
|
|
| Есть всеми известное правило RewriteRule которое перенаправляет запрос по опеределенному алгоритму.
А есть что то типа товоже только чтобы было не перенаправление а запускался бы еще дополнительный скрипт с определенными параметрами?
Тоесть идет запрос на файл на сервере, и если имя этого запроса отвечает опеределенным параметрам(Например те алгоритмы которые мы ставим в RewriteRule) открывался бы нужный нам скрипт с перемеными которые нам нужны. | |
|
|
|
|
|
|
|
для: tim313
(08.03.2010 в 03:24)
| | А скрипт это что такое, он что не в файлах? | |
|
|
|
|
|
|
|
для: sim5
(08.03.2010 в 03:26)
| | Да нет вы не поняли, обращение идет к статическому файлу типа: /img/123.jpg
И при таком обращении паралельно открываеться скрипт типа /script.php?id=123
Тоесть пользователь скачивает там картинку по прямой ссылки а скрипт это типа как счетчик. | |
|
|
|
|
|
|
|
для: tim313
(08.03.2010 в 13:07)
| | Ну и делайте перенаправление, если запрашивается изображение из определенной папки, к этому срипту, а там уже все что положено. В чем проблема? | |
|
|
|
|
|
|
|
для: sim5
(08.03.2010 в 13:24)
| | Мне не нужно перенаправление.
Допустим вы набираете в браузере прямую ссылку на файл типа : site.ru/123.jpg вам открываеться картинка этого файла , но еще в этот же момент на сервере запускаеться скрипт который делает все что мне нужно. | |
|
|
|
|
|
|
|
для: tim313
(08.03.2010 в 16:12)
| | Если набирать в браузере прямую ссылку, то почему тогда и не направить исполнение на файл нужный? Совесть не позволяет или в чем проблема? | |
|
|
|
|
|
|
|
для: tim313
(08.03.2010 в 16:12)
| | Вам предлагают сделать так:
Вы набираете прямую ссылку. site.ru/123.jpg
Механизм mod_rewrite перебрасывает сервер на скрипт /script.php?id=123
Скрипт выводит в поток содержимое файла site.ru/123.jpg с заголовком Content-Type: image/jpeg и Content-Length: длинаФайлаКартинки ,
а затем выполняет всё, что нужно Вам, как программисту.
Браузер счастливо показывает картинку.
Что еще надо? | |
|
|
|
|
|
|
|
для: Trianon
(08.03.2010 в 16:34)
| | Хаха если бы вывод в поток был бы не так затребователен к серверу я бы так и сделал.
Я не говорил что мне нужно использоватеть механиз mod_rewrite , просто я подумал что если есть такой механизм переброски по алгоритму , почему бы и не был такой же механизм но тока без переброски, просто на сервере открываеться нужный скрипт без переброски на него.
Для чего это нужно на пальцах:
Это нужно что бы сделать подсчет скачиваний файлов.
Вы скажите да есть тысячи счетчиков в чем проблема?
Проблема в том что все счетчики которые я встречал основываються на каких то там ссылках на файл или перенаправления или ссылки на скрипты.
Но если человек ставит например прямую ссылку на файл на какомнибуть фаруме, то тут еже счетчики без сильны.
Trianon, тот механизм что вы написали работает , но он кушает много ресурсов.
Неужели нет подобия RewriteRule только без перенаправления? | |
|
|
|
|
|
|
|
для: tim313
(08.03.2010 в 16:55)
| | Запрос должен быть к скрипту, вот и думайте. | |
|
|
|
|
|
|
|
для: sim5
(08.03.2010 в 17:06)
| | Это прямолинейное мышление. | |
|
|
|
|
|
|
|
для: tim313
(08.03.2010 в 18:00)
| | Даже так? | |
|
|
|
|
|
|
|
для: tim313
(08.03.2010 в 16:55)
| | напишите, какой именно оператор кушает много ресурсов?
Ха-ха скажет тот, кто скажет его последним. :-\ | |
|
|
|
|
|
|
|
для: Trianon
(08.03.2010 в 17:55)
| | )
imagejpeg('123.jpg');
Спрашивал даже.
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=72392&page=1 | |
|
|
|
|
|
|
|
для: tim313
(08.03.2010 в 17:59)
| | Теперь сравните с fpassthru($h = fopen('123.jpg', 'rb')); fclose($h);
Открывать файл, как картинку в скрипте, Вас никто не заставляет.
Предложено лишь выкинуть его содержимое в браузер. | |
|
|
|
|
|
|
|
для: Trianon
(08.03.2010 в 18:03)
| | Мне трудно сравнить скорость такой формы открытия с обычной или через GD.
Если вы говорите что этот способ работает быстро придеться вам поверить на слово.
Хотя все равно было бы проще сделать паралельный скрипт и не заморачиваться с формой вывода. | |
|
|
|
|
|
|
|
для: tim313
(08.03.2010 в 18:40)
| | Чтобы сделать параллельный скрипт, нужно сперва понять, что Вы вкложите в это понятие (параллельного скрипта), и не до, а после минимального ознакомления с клиент-серверной технологией (по которой браузер взаимодействует с сайтом.)
Но после того, как Вы это сделаете, Вы поймете, что ...
Впрочем, сперва Вы поймете, а потом продолжим спорить.
И Да.
Я не знаю, что такое обычная скорость.
Если под обычной скоростью Вы понимаете скорость отрисовки картинки, взятой из кеша браузера,
то в таком решении от браузера до сервера вообще ни звука не дойдет. Просто не успеет.
Что, очевидно, не то, что Вам нужно. | |
|
|
|
|
|
|
|
для: Trianon
(08.03.2010 в 19:32)
| | >Чтобы сделать параллельный скрипт, нужно сперва понять, что Вы вкложите в это понятие (параллельного скрипта), и не до, а после минимального ознакомления с клиент-серверной технологией (по которой браузер взаимодействует с сайтом.)
Ну вот идет обращение от браузера клиента к серверу на какойто файл.
Сервер смотрит тип этого файла: Ага тип нам понятен, если нет никаких правил перенаправления подходящий под этот запрос он начинает читать файл и передовать его.
Просто было бы очень удобно когда сервер смотрит правила перенаправления, только не перенаправляет на скрипт, а просто отдает файл и одновременно запускает нужный нам скрипт не для клиента который качает файл себе.
>И Да.
>Я не знаю, что такое обычная скорость.
>Если под обычной скоростью Вы понимаете скорость отрисовки картинки, взятой из кеша браузера,
Я вам открою глаза, обычная скорость это скорость задержки, разница во времени между тем как пользователь отправит запрос по ссылке в своем браузере и тем как сервер начнет ему выдавать то что нужно. | |
|
|
|
|
|
|
|
для: tim313
(08.03.2010 в 18:40)
| | А для чего отрисовывать картинку? Сделайте перенаправление в скрипте, после подсчета или чего там нужно сделать. | |
|
|
|
|
|
|
|
для: Николай2357
(08.03.2010 в 20:09)
| | Ну и как вы это себе представляете?)
Перенаправляеться файл 123.jpg на скрипт script.php?id=123 в котором идет перенаправление на тот же файл 123.jpg) и так по кругу) | |
|
|
|
|
|
|
|
для: tim313
(08.03.2010 в 20:15)
| | Параметр добавить в скрипте не судьба? | |
|
|
|
|
|
|
|
для: Николай2357
(08.03.2010 в 20:17)
| | >Параметр добавить в скрипте не судьба?
Какой параметр вы имете ввиду: Location ?
Смотрите на сервере прописано правило допустим RewriteRule которое перенаправляет запрос типа 123.jpg на scrpt.php?id=123
Скрипт делает 2 вещи:
1 Подсчет статистики
2 Отдает нужный нам файл.
И так , файл можно отдавать 3мя способами, через GD , через простое чтение файла и вывод в поток браузера через функции работы с файлами или просто еще раз перенаправить через Location.
1й вариант очень требователе, 3й просто глубый ибо образуеться бесконечный цикл, 2й пока более менее приемлимый.
Вы какой параметр имете ввиду.? | |
|
|
|
|
|
|
|
для: tim313
(08.03.2010 в 20:29)
| |
<?php
if(!empty($_GET['id'])
{
// Считаем
header('location: '. $_GET['id'] .'?GET-параметр_на_который_не_должен_реагировать_Mod_Rewrite');
}
|
| |
|
|
|
|
|
|
|
для: Николай2357
(08.03.2010 в 20:43)
| | Хитро хитро) заставить файл с параметром считать другим файлом не подходищим под алгоритм Rewrite).
Да , это наиболее простой и удобный способ, спасибо. | |
|
|
|
|
|
|
|
для: tim313
(08.03.2010 в 21:10)
| | Можно проще, скрипт положить в одну директорию, а картинки в другую
Варианты есть... | |
|
|
|
|
|
|
|
для: Николай2357
(08.03.2010 в 20:43)
| | header location спровоцирует еще один раунд обмена клиент-сервер.
А Автору нужно быстро.
Он только почему-то не хочет согласиться с тем, что fpassthru работает со скоростью файловой системы сервера. То есть с той же, с какой работает сам апач. | |
|
|
|
|
|
|
|
для: Trianon
(08.03.2010 в 22:11)
| | И стой же с которой работает nginx? | |
|
|
|
|
|
|
|
для: tim313
(08.03.2010 в 23:48)
| | nginx - с какими запросами?
Со статическими? | |
|
|
|
|
|
|
|
для: Trianon
(09.03.2010 в 03:46)
| | Угу, ну по файлам. | |
|
|
|
|
|
|
|
для: tim313
(09.03.2010 в 13:57)
| | Статические запросы по жизни до php не долетают.
Собственно, как я понимаю, в случае с nginx они не долетают и до апача. | |
|
|
|