Conflict: index and try_files
Maxim Dounin
mdounin at mdounin.ru
Fri Nov 18 14:50:27 UTC 2011
Hello!
On Fri, Nov 18, 2011 at 09:39:05AM -0500, janedenone wrote:
> In the following simple configuration
>
> server {
> server_name testsite.static;
> root /some/path/;
> index blog.html;
> try_files $uri $uri.html =404;
> }
>
> the try_files directive seems to interfere with the index directive: I
> always get 404 for http://testsite.static/.
If you want try_files to test directories as well (and to allow
index directive to work), you have to explicitly specify "/" at
the end of name. I.e. use something like this:
try_files $uri/ $uri $uri.html =404;
> If I remove the fallback
> part of try_files, the same request results in an error:
If you remove "=404" from the above try_files, it will become
try_files $uri $uri.html;
i.e. if no file $uri found, it will redirect to $uri.html (/.html)
in your case. In it's turn it won't be found and will again
redirect to $uri.html (/.html.html now). The
> *990 rewrite or internal redirection cycle while internal redirect to
> "/.html.html.html....
is expected.
> The file blog.html is present in /some/path/, so I really do not
> understand why the file is not found/served for the above URL.
That's because it tests for files, and rejects directories by
default. Test for directories must by explicitly requested.
See here for more information:
http://nginx.org/en/docs/http/ngx_http_core_module.html#try_files
Maxim Dounin
More information about the nginx
mailing list