Помогите с rewrite в nginx

k0t
На сайте с 13.07.2008
Offline
99
k0t
1143

Хочу сделать следующее.

Когда браузер запрашивает несуществующее изображение, нужно выдавать вместо него другую картинку.

Картинки на сервере могут лежать в разных директориях и могут быть с разным расширением, фор экземпл:

site.ru/kartinka.jpg

site.ru/images/kartinka.png
и т.д.

Такая вот конструкция не хочет работать. Совсем.

    location ~* \.(jpg|jpeg|gif|png)$ {

root /home/site.ru/;
if (!-f $request_filename) {
rewrite ^(.*)$ /home/site.ru/img/nopreview.gif # статическая картинка, ее подсовывать вместо несуществующей
break;
}
}
M
На сайте с 19.09.2007
Offline
112
#1

попробуйте так

location ~* .(jpg|jpeg|gif|png)$ {

root /home/site.ru ;

error_page 404 = /img/nopreview.gif ;

}

K
На сайте с 29.02.2008
Offline
116
kdj
#2

rewrite ^(.*)$ /home/site.ru/img/nopreview.gif

/home/site.ru - лишнее

k0t
На сайте с 13.07.2008
Offline
99
k0t
#3

по наводке manman сделал так

        location ~* ^.+\.(gif|jpe?g|png|ico)$ {

root /home/site.com;
error_page 404 =200 /1px.png;
}
Boris A Dolgov
На сайте с 04.07.2007
Offline
215
#4

Более правильный вариант -


location ~* \.(gif|jpe?g|png|ico)$
{
root /home/site.com;
try_files $uri /1px.png;
}
С уважением, Борис Долгов. Администрирование, дешевые лицензии ISPsystem, Parallels, cPanel, DirectAdmin, скины, SSL - ISPlicense.ru (http://www.isplicense.ru/?from=4926)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий