recently I migrate one of domains, I manage, to use try_files directive
instead of several “if” blocks and rewrites. New server description is
like this:
server {
listen X.X.X.X;
server_name example.com *.example.com;
Strange thing (for me) is if I try some URL like http://example.com/path/to/non/existing/file.jpg (or any other extension
from location checks) I receive error 404. Is this normal behavior ? I
expect index.php to be open. I’ve tried to put try_files in location / {
} , but effect is the same ? Do I have to put try_files in every
location block ? Or this is some kind of bug ?
On Mon, Jun 13, 2011 at 05:10:19AM -0400, iko wrote:
index index.php;
}
Strange thing (for me) is if I try some URL like http://example.com/path/to/non/existing/file.jpg (or any other extension
from location checks) I receive error 404. Is this normal behavior ? I
expect index.php to be open. I’ve tried to put try_files in location / {
} , but effect is the same ? Do I have to put try_files in every
location block ? Or this is some kind of bug ?
Directive try_files isn’t inhereted from previous levels, and not
expected to. You’ve defined it at server level (which isn’t
allowed per documentation, btw, but happens to work - this is
probably a bug, indeed) and this results in try_files being used
in an implicit location.
There are no try_files in other locations though, and the result
you see is expected. If you want try_files to be in other
locations - you have to place it there too.
thanks for reply. Now I understand better try_files directive and it
really should be better described in documentation/wiki. At least is it
supports server section and how.
Hristo
Posted at Nginx Forum:
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.