Hi,
In my nginx config, I have a virtual path (/foo), e.g.
location = /foo {
expires 1h;
add_header Cache-Control "public";
}
This path does not exist, and it goes into the fcgi using
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~* \.php$ {
..
}
The problem is the 1st location block is adding 404 to every response
even
I can route the request to the backend.
E.g.
curl -v 'http://www.example.com/foo'
< HTTP/1.1 404 Not Found
bar <-- actual output from backend, but why 404?
Any idea?
on 2012-11-24 06:58
on 2012-11-24 11:49
On Sat, Nov 24, 2012 at 01:58:16PM +0800, howard chen wrote: Hi there, in nginx, one request is handled in one location. > location = /foo { > expires 1h; > add_header Cache-Control "public"; > } Your request for /foo should be handled in that location. It will, depending on the configuration that you haven't shown, try to serve the file /usr/local/nginx/html/foo with a few extra http headers. > This path does not exist, and it goes into the fcgi using > > location / { > try_files $uri $uri/ /index.php?$args; > } The configuration you have shown does not indicate that that will happen. (Unless, perhaps, you have something like an error_page directive in place.) > curl -v 'http://www.example.com/foo' > > < HTTP/1.1 404 Not Found > bar <-- actual output from backend, but why 404? > > Any idea? Can you provide a config file that is enough to demonstrate what you are reporting? Thanks, f -- Francis Daly francis@daoine.org
Please log in before posting. Registration is free and takes only a minute.
Existing account
(Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
Log in with Google account | Log in with Yahoo account
No account? Register here.