Re: Redirect в случае если файл присутствует

Igor Sysoev igor на sysoev.ru
Пн Апр 18 09:17:18 UTC 2016


On 18 Apr 2016, at 12:09, siroco <nginx-forum at forum.nginx.org> wrote:

> Привет!
> 
> Хочется сделать такую вещь - проверять наличие файла (это файл с контрольной
> суммой, например, "/myfile.txt.sha256") и в случае наличия файла делать
> редирект на CDN на "/myfile.txt". А в случае отсутствия файла - просто
> выдавать 404.
> 
> Поскольку "if"(ы) это плохо, то напрашивается решение с try_files.
> 
> Однако вот такой вот конфиг редиректит на CDN только в случае отсутствия
> файла с контрольной суммой:
> 
>    # if file with checksum exists then redirect to CDN
>    location / {
>        root /var/www/myfiles;
>        try_files $uri.sha256 @redirect_to_cdn;
>    }
> 
>    location @redirect_to_cdn {
>        return 302 http://mycdn.domain.com$request_uri;
>    }
> 
> 
> Возможно ли как-то инвертировать условие try_files?

if это, конечно, плохо, но в сочетании с return не имеет побочных эффектов.
Можно использовать.


-- 
Igor Sysoev
http://nginx.com



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