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

siroco nginx-forum на forum.nginx.org
Пн Апр 18 09:09:48 UTC 2016


Привет!

Хочется сделать такую вещь - проверять наличие файла (это файл с контрольной
суммой, например, "/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?

--
S.

Posted at Nginx Forum: https://forum.nginx.org/read.php?21,266212,266212#msg-266212



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