2012-05-15 1 views
0

Я ударяю головой о клавиатуру, пытаясь понять это. Я запускаю сайт, интенсивно использующий изображения, где я предварительно обрабатываю изображения (переразмер/печать/сохранение) перед показом изображения.Как запустить скрипт, если файл изображения не существует с помощью mod_rewrite

Вот мой вопрос, как проверить, что обработанное изображение уже существует в каталоге (/cache/photos/600x500/xxx.jpg или /cache/photos/200x400/xxx.jpg) с mod_rewrite, и если это не так переназначить этот запрос на сценарий обработки изображений, который будет создавать изображение с оригинала и отображать его пользователю.

Благодарим за помощь. Я пытался найти подобный вопрос, но это испуг моего разум :)

ответ

0

Вам нужно что-то вроде этого

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(expression$) /path/to/script?file=$1 [L] 

И вашего сценария необходимо сгенерировать файл и распечатать/служить изображение

1
#First check if the request is for a JPG: 
RewriteCond %{REQUEST_URI} (.*).jpg$ 

#If so, see if it exists in /cache/photos/600x500/xxx.jpg 
RewriteCond %{DOCUMENT_ROOT}/cache/photos/600x500/%1.jpg -f [NC] 

#If so, serve that: 
RewriteRule .* cache/photos/600x500/%1.jpg [L] 

# Similar set of rules for other cache: 
RewriteCond %{REQUEST_URI} (.*).jpg$ 
RewriteCond %{DOCUMENT_ROOT}/cache/photos/200x400/%1.jpg -f [NC] 
RewriteRule .* cache/photos/200x400/%1.jpg [L] 

# Final rewrite for jpg files: 
RewriteCond %{REQUEST_URI} (.*).jpg$ 
RewriteRule (.*) createimage.php?image=$1 [L] 
Смежные вопросы