windows server + nginx 中文路径报错。? 400 报错
环境:windows server2008 + nginx
说明:浏览器提交一个请求,经过springMVC处理,转发请求到nginx。如果直接把文件的路径输入到浏览器,不经过springMVC就没问题。
日志:
2017/12/11 11:24:18 [error] 2752#2848: *91 CreateFile() "D:/caishidata/uploadFiles/b934505e-55f9-4117-b2eb-142f2260315f_" failed (2: The system cannot find the file specified), client: 118.116.83.91, server: , request: "GET /caishi-mes-service/file/fileService/b934505e-55f9-4117-b2eb-142f2260315f_%E4%BA%A4%E5%BA%95-%E4%B8%80%E7%A7%8D%E6%BF%80%E5%85%89%E5%A2%9E%E5%87%8F%E6%9D%90%E5%A4%8D%E5%90%88%E5%88%B6%E9%80%A0%E8%A3%85%E5%A4%87.doc HTTP/1.1", upstream: "http://[::1]:8080/caishi-mes-service/file/fileService/b934505e-55f9-4117-b2eb-142f2260315f_%E4%BA%A4%E5%BA%95-%E4%B8%80%E7%A7%8D%E6%BF%80%E5%85%89%E5%A2%9E%E5%87%8F%E6%9D%90%E5%A4%8D%E5%90%88%E5%88%B6%E9%80%A0%E8%A3%85%E5%A4%87.doc", host: "180.168.38.106"
已解决。
在controller里对转发的URL用utf-8编码。
response.setHeader("X-Accel-Redirect", URLEncoder.encode(path, "utf-8"));
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。