Nginx обслуживает только статические файлы, но некоторые имена файлов содержат символы "?". Да, вопросительный знак.
Все URL-адреса, содержащие '?' yield 404, даже если файл действительно существует. например
> GET /foo?lang=ar.html HTTP/1.1
...
...
< HTTP/1.1 404 Not Found
Хотя файл с именем foo? lang = ar.html действительно существует в ожидаемом месте.
Интересно, есть ли способ указать Nginx обрабатывать весь запрос как URL-адрес, включая то, что в настоящее время переводится как строка запроса.
Единственное решение, которое я имею в виду, - это написать небольшой веб-сервер, который сделает это и будет иметь обратный прокси-сервер nginx для этого веб-сервера, но я предпочитаю делать это только с помощью nginx.
Ты можешь использовать try_files либо с $request_uri
или $uri$is_args$args
в зависимости от того, хотите ли вы, чтобы биты urlencoded были декодированы или нет при поиске имени файла.