Назад | Перейти на главную страницу

Как настроить Nginx так, чтобы он обрабатывал "?…" Как часть имени файла

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 были декодированы или нет при поиске имени файла.