I have the following nginx server config:
server {
listen 80;
server_name example.com
root /server/root;
index index.php;
error_page 404 = /index.php;
location ~ \.php$ {
try_files $uri =404;
proxy_pass http://127.0.0.1:8080;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Request-URI $request_uri;
}
}
The behavior that I want is that when nginx encounters a request for a file which does not exist it instead shows the index.php page by way of a 404 page. The problem is it seems that apache (which is what's being proxied back to) is still trying to resolve the original request when it gets the request. If I go to http://example.com/blahblah, I get back the error:
The requested URL /blahblah was not found on this server.
Which is an apache error. How can I make it so that index.php is shown as the 404 page just the same as if it was a static file?