Use try_files and still get errors 404

iko nginx-forum at nginx.us
Mon Jun 13 13:10:19 MSD 2011


Hello,

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;

	index	index.php;
	root		/www/example.com/www/root;
	
	try_files 	$uri $uri/ /index.php$is_args$args;
	
	location ~* \.(jpg|jpeg|gif|png|ico|swf)$ {
		gzip off;
		expires         7d;
	}
	location ~* \.(js|css)$ {
		expires         7d;
	}
	location ~ \.php$ {
		fastcgi_pass upstreanphp;
		fastcgi_param SCRIPT_FILENAME  $document_root$fastcgi_script_name;
		fastcgi_intercept_errors on;
		fastcgi_read_timeout 120;
		fastcgi_next_upstream error timeout invalid_header;
		include		fastcgi_params;
	}
}

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 ? 

I use nginx 0.8.54 on linux x86_64

Greetings,
Hristo

Posted at Nginx Forum: http://forum.nginx.org/read.php?2,206358,206358#msg-206358




More information about the nginx mailing list