Rewrite

Maxim Dounin mdounin at mdounin.ru
Fri Aug 31 17:44:04 UTC 2012


Hello!

On Wed, Aug 29, 2012 at 01:51:03AM -0400, Hett wrote:

> Привет,
> суть такова,
> Есть каталог images, в нем лежат другие каталоги, например application,
> video
> Приходят запросы
> images/application/x-rar-compressed.png
> есть такое  изображение есть, то отдаем его, если же нету, то отдаем
> изображение images/application/default.png
> 
> На апачи я создавал в images файл .htaccess следующего содержания:
> RewriteEngine On
> RewriteCond %{REQUEST_FILENAME} !-f
> RewriteCond %{REQUEST_FILENAME} !-d
> RewriteRule (.*)/.*\.png$ $1/default.png [L]
> 
> Как это удобнее сделать на nginx? Очень желательно чтобы не добавлялась
> новая location, и именно это меня вгоняет в ступор.

Как-то так должно сработать:

map $uri $dirname {
    ~(?<name>.*)/[^/]+$  $name;
}

location /images/ {
    try_files $uri $dirname/default.png =404;
}

Документация тут:

http://nginx.org/r/map
http://nginx.org/r/try_files;

Maxim Dounin



Подробная информация о списке рассылки nginx-ru