全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 4375|回复: 4

[nginx] 关于nginx中文文件或者中文路径访问

[复制链接]
发表于 2010-10-16 06:32:53 | 显示全部楼层 |阅读模式
中文.html
/中文/

用中文命名的文件或者文件夹 全部404 如何解决?
 楼主| 发表于 2010-10-16 09:06:02 | 显示全部楼层
自己ding。。。
发表于 2010-10-16 11:12:37 | 显示全部楼层
帮顶
发表于 2010-10-16 11:19:21 | 显示全部楼层
网上找的
在IE下默认是以UTF-8的方式编码URL,向服务器发送请求,当中文出现在URL中的时候,就会被以UTF-8的方式编码,发送向服务器。这个时候服务器的字符集就会影响到WEB对URL的解码。

    很多时候在其实不论是NGINX还是APACHE,问题的本质在于浏览器端请求的字符集和服务器端的字符集是否一致,当出现不一致的时候,服务器就无法找到请求的路径,从而出现404 NOT FOUND的错误。解决方案可以从以下几方面开始

1、服务器的系统字符集

    在centos下可以用echo $LANG查看。可以在vi /etc/profile 中增加

   export zh_CN.utf-8

   export LANG=zh_CN.utf-8

  然后重新启动服务器,即可生效

2、nginx的conf文件中配置的字符集

   在../nginx/conf/nginx.conf中的charset设置。

3、被请求的文件路径或者文件名的字符集。

  第1和第2点更改很容易,第3点,更改文件名的字符集,需要使用工具convmv才能完成

  convmv 可以从http://j3e.de/linux/convmv 下载,

  wget http://j3e.de/linux/convmv/convmv-1.14.tar.gz

  tar -zxvf convmv-1.14.tar.gz

  cd convmv-1.14

  make clean;

  make install;

  如:

  ./convmv -f GB2312 -t UTF-8 -r --nosmart --notest userfiles/*.*

  以上表示 userfiles下的所有文件的文件名由GB2312转换为UTF-8



   对于文件内容的字符集转换可以使用iconv
发表于 2010-10-16 11:20:40 | 显示全部楼层
linux下本身对中文支持的就不好。如果是长期建站,还是建议用英文做目录吧。当然,如果是伪静态规则,就没有问题了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2024-5-16 09:08 , Processed in 0.061482 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表