zoukankan      html  css  js  c++  java
  • Nginx 使用中文URL,中文目录路径

    Nginx 使用中文URL,中文目录路径

    分类: linux

    [root@Tserver ~]# env|grep LANG

                                    LANG=en_US.UTF-8

    二:NGINX配置文件里默认编码设置为utf-8

    server{

    listen 80;

    server_name .inginx.com ;

    index index.html index.htm index.php;

    root /usr/local/nginx/html/inginx.com;

    charset utf-8;

    }

    三:如果使用putty

    windows –> translation –>UTF-8

    mkdir NGINX中文技术站

    echo ‘NGINX中文技术站’ > NGINX中文技术站/中国.html

    四,如果是用securecrt 上传文件,请选择 回话–>外观–UTF-8

    如果是FTP软件也将默认编码设置为TUF-8

    五,如果上传的文件名出现乱码显示执行

    for f in `ls *.html` ; do mv $f `ls $f|iconv -f GBK -t UTF-8`; done

    Nginx下的中文路径及中文文件名的处理

    在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

  • 相关阅读:
    iphone的苹果式营销体会
    上海自驾游之水博园游记
    2011上海车展参观记(多图)
    一部烂电影《让子弹飞》
    坚持自己读罗永浩《我的奋斗》感悟
    转:心理测试
    我们只要世界第一
    一篇小学课文
    iphone 4 初体验
    Setting Expires and CacheControl: maxage headers for static resources in ASP.NET
  • 原文地址:https://www.cnblogs.com/archoncap/p/4861287.html
Copyright © 2011-2022 走看看