Try_files

On 23.07.2011 17:42, António P. P. Almeida wrote:

  •      location ^~ /media/ {
    
  •            # static
    
  •            expires 30d;
    
  •            error_page 404 = @joomla;
    
  •            log_not_found off;
    
  •      }
    

Wouldn’t the use of try_files be preferable to error_page?

  •            error_page 404 = @joomla;
    
  •            try_files $uri $uri/ @joomla;
    

I just copy/paste/paste/paste already working config fragment…

From the little I know, try_files does a stat() call while error_page
is a special response. They both do an internal redirection. They run
on different phases. Is this correct? If so is there any rule of
thumb
for deciding when to use try_files vs. error_page 404.

As far I know, “try_files $uri $uri/ @joomla;” directive
and “error_page 404 = @joomla;” with “log_not_found off;”

has the same behaviour, - this is written at russian documentation.
http://sysoev.ru/nginx/docs/http/ngx_http_core_module.html#try_files

As I can see in http://nginx.org/en/CHANGES
try_files first appeared in nginx 0.7.27, and last known bug
with try_files was fixed in nginx 0.8.39, so in older versions
of nginx error_page 404 with log_not_found off; may be better,
or may be the only one way to do such things.

and main purpose of try_files - is just to be syntactic sugar
for config files to be more clean and easy to read/understand.
as in C language a[i] notation is syntactic sugar for *(a + i)


Best regards,
Gena