try_files $ uri和utf-8文件名

时间:2014-03-20 19:05:31

标签: unicode

我使用python将我的网站生成为静态文件并将其上传到网络服务器。我该如何处理utf-8文件名?

我有一个utf-8文件名가요.html,它使用:

返回404
try_files $uri $uri.html

使用strace nginx正在寻找八进制的UTF-8字节:

\352\260\200\354\232\224.html

我尝试了$ request_uri而不是$ uri,我看到nginx正在寻找编码的网址:

%EA%B0%80%EC%9A%94.html

가요.html存在于nginx目录中。我可以在nginx中解决这个问题而不使用$ request_uri和url编码服务器上的文件名吗?让nginx正确找到"가요.html"通过在这假设utf-8编码?

编辑 - 这不是一个nginx问题吗?我只是做了一点你好,nginx正确地服务了它:

[pid 228568] recvfrom(3, "GET /%E4%BD%A0%E5%A5%BD "..., 1024, 0, NULL, NULL) = 847
[pid 228568] stat("/webroot/\344\275\240\345\245\275", {st_mode=S_IFREG|0664, st_size=0, ...}) = 0

相同的设置,相同的目录,带有由strace报告的octals的stat。

1 个答案:

答案 0 :(得分:0)

问题是在具有韩文文件名的Mac上创建的文件以分解形式保存,而其他所有人都使用预先组合。具有两个不同unicode值的相同文件名。

http://ubuntuforums.org/archive/index.php/t-1422374.html