Nginx只提供静态文件,但是一些文件名包含'?'。 是的,问号。
所有包含“?”的url 即使文件实际存在,也会产生404。 例如
> GET /foo?lang=ar.html HTTP/1.1 ... ... < HTTP/1.1 404 Not Found
在预期位置存在一个名为foo?lang = ar.html的文件。
我想知道是否有办法告诉Nginx将整个请求视为URL,包括当前被翻译为查询string的内容。
我唯一想到的解决scheme就是编写一个小型的Web服务器,它具有这个function,并且有nginx反向代理服务器,但是我宁愿单独使用nginx来完成。
您可以使用$request_uri或$uri$is_args$args try_files ,具体取决于您是否希望在查找文件名时解码urlencoded位。