Nginx is serving only static files, yet, some of file names contains '?'. Yes, the question mark.
All URLs that contains '?' yield 404 even though file actually exists. e.g.
> GET /foo?lang=ar.html HTTP/1.1 ... ... < HTTP/1.1 404 Not Found
While a file named foo?lang=ar.html does exists in the expected location.
I wonder if there is a way to tell Nginx to treat the entire request as URL including what is currently translated as query string.
The only solution I have in mind is to write a small web server that does this and have nginx reverse proxy that web server, but I prefer get it done with nginx alone.
GET /header.php%3fbla HTTP/1.1" 404.