mod_rewrite и картинки

alexon

Новичок
mod_rewrite и картинки

Добрый день.

Есть CMS работающая через mod_rewrite для создания маппинга, т.е. ссылок типа /info/about/index.html которая передается файлу для обработки. Суть не в этом. Проблема с отображением картинок. Есть праило:
RewriteRule (.*)\.jpg$ /bin/viewimage.php?path=%{REQUEST_URI}&resource=$1.jpg&domain=%{HTTP_HOST}&action=image [PT,QSA]

Запросы на картинки передаются РНР-скрипту, который по имени домена вычисляет его ID и выдает картинку. Однако картинки не всегда подгружаются. Из-за чего бы это могло быть? Нажимаешь рефрешь - картинки появляются, но могут не отобразится какие то другие, а могут и все отобразится. Такое ощущение, что не хватает времени для выполнения или это все таки mod-rewrite глючит?.
Скрипты выдающий картинки элементарный: создается картинка по имени и выдается ImageJPEG.

Глюки обнаружены как на Windows так и на Linux.
Apache 1.3.27, PHP 4.3.2(3)
 

Alien

Новичок
Доктор, у меня глючит, а где не знаю.

rewritelog + смотреть заголовки + дебажить скрипты.
 

alexon

Новичок
RewriteLog:
217.106.53.84 - - [08/Sep/2003:17:11:44 +0500] [alexon/sid#a44c78][rid#49f1020/initial] (1) [per-dir c:/usr/httpd/] internal redirect with /bin/viewimage.php [INTERNAL REDIRECT]
217.106.53.84 - - [08/Sep/2003:17:11:44 +0500] [alexon/sid#a44c78][rid#4c655b0/initial/redir#1] (1) [per-dir c:/usr/httpd/] pass through c:/usr/httpd/bin/viewimage.php

Скрипт, отдающий картинку:
Вариант 1:
header("Content-type: image/jpeg");
$fp=fopen($_file,"r");
fpassthru($fp);
fclose($fp);

Вариант 2:
$im=ImageCreateFromJPEG($_file);
ImageJPEG($im);
ImageDestroy($im);

Сейчас работает по первому варианту, потому что по второму вдобавок еще и картинки портились, вернее частично отображались, частично были черные с полосками.
Так в чем проблема то с отображением?

Может кто встречал? Или у кого как сделана отдача картинок через mod_rewrite.
 

Yamamoto

Guest
да причем здесь mod_rewrite... он к картинкам не имеет никакого отношения, ведь их отдает твой скрипт...

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

alexon

Новичок
Автор оригинала: Yamamoto
да причем здесь mod_rewrite... он к картинкам не имеет никакого отношения, ведь их отдает твой скрипт...

проблемы могут быть в коде...
проверить легко, проверь все переменные с картинками перед их выводом, точно ли они заполнены данными и то что размер этих данных точно соотвествует размеру этих картинок в оригинале...
Скрипт работает нормально и ошибок в нем нет. Если не использовать mod_rewrite все картинки отображаются всегда, я уже пробовал.

Причем если на неотобразившуюся картинку щелкнуть и выбрать в меню Show picture она отобразится.
Может если одновременно идет запрос на 10 вызовов скрипта, РНР не может обрабатывать параллельно запросы.
Попробую еще в апаче поменять настройки.
 

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
Автор оригинала: alexon
Попробую еще в апаче поменять настройки.
Попробуй в скрипте Content-Length отдавать. Тогда, ЕМНИП, будет keepalive работать.
 
Сверху