zoukankan      html  css  js  c++  java
  • Apache、NGINX支持中文URL

    Apache(32位):
    安装环境:CentOS 5.6 + Apache 2.2.15

    安装结果:安装后支持“中文图片、文件名”链接直接打开
    以下为安装过程:
    1、下载安装包

    1. wget ftp://ftp.aconus.com/fc5/mod_encoding/mod_encoding-2.2.0-1.i386.tar.gz


    2、直接解压

    1. tar zxvf mod_encoding-2.2.0-1.i386.tar.gz



         看到2个rpm安装包,进行安装

    1. rpm -ivh iconv_hook-1.0.0-1.i386.rpm
    2. rpm -ivh mod_encoding-2.2.0-1.i386.rpm



    3、用 find / -name httpd.conf 找到apache配置文件httpd.conf,vi编辑加入以下内容

    1. LoadModule encoding_module modules/mod_encoding.so
    2. Header add MS-Author-Via "DAV"
    3. EncodingEngine on
    4. NormalizeUsername on
    5. SetServerEncoding GBK
    6. DefaultClientEncoding UTF-8 GBK GB2312
    7. AddClientEncoding "(Microsoft .* DAV $)" UTF-8 GBK GB2312
    8. AddClientEncoding "Microsoft .* DAV" UTF-8 GBK GB2312
    9. AddClientEncoding "Microsoft-WebDAV*" UTF-8 GBK GB2312



    保存退出
    4、重启apache

    1. service httpd restart


    5、完成!


    注:如果安装的是WDCP,重启apache会失败,需要将mod_encoding.so复制到/www/wdlinux/httpd-2.2.22/modules下,
    命令:

    1. cp /usr/lib/httpd/modules/mod_encoding.so /www/wdlinux/httpd-2.2.22/modules





    Apache(64位):
    ————————————————————-

    此方案用于解决Apache软件对中文网址、中文图片、文件名的支持问题。
    通过测试环境:64位CentOS5.5 + Apache2.2.15
    ————————————————————-
    下载 mod_encoding_64.tar.gz
    源码包由吴世昌整理,已经包含了apache2.2所需的补丁。
    2011.9.20由Hostloc.com的Captain修改补充。
    ————————————————————-
    1、安装gcc组件


    1. yum install gcc -y




    2、下载压缩包

    1. wget http://d.nicwind.com/files/mod_encoding_64.tar.gz




    3、将压缩包解压,进行编译

    1. tar zxvf mod_encoding_64.tar.gz
    2. cd mod_encoding_64
    3. patch -p0 < mod_encoding.c-apache2.2-20060520.patch
    4. cd lib
    5. chmod 755 configure
    6. ./configure --prefix=/usr
    7. make && make install
    8. ldconfig
    9. cd ../
    10. chmod 755 configure
    11. cp -p /usr/sbin/apxs /usr/bin
    12. ./configure --with-apxs=/usr/bin/apxs --with-iconv-hook=/usr/include
    13. make
    14. gcc -shared -o mod_encoding.so mod_encoding.o -Wc,-Wall -Llib -liconv_hook
    15. cp mod_encoding.so /usr/lib/httpd/modules



    注:/usr/lib/httpd/modules为apache的modules目录,可以用

    1. find / -name modules

    找出这个目录的路径
    注意把/usr/lib/httpd/modules改成你的apache模块存放路径。 

    4、完成以上操作后,再修改apache的配置文件(可以用find / -name httpd.conf,找出httpd.conf文件的路径),把下面的内容添加到apache的配置文件httpd.conf中。

    1. LoadModule encoding_module modules/mod_encoding.so
    2. EncodingEngine on
    3. NormalizeUsername on
    4. SetServerEncoding GBK
    5. DefaultClientEncoding UTF-8 GBK GB2312
    6. AddClientEncoding "(Microsoft .* DAV $)" UTF-8 GBK GB2312
    7. AddClientEncoding "Microsoft .* DAV" UTF-8 GBK GB2312
    8. AddClientEncoding "Microsoft-WebDAV*" UTF-8 GBK GB2312



    保存,退出

    5、重启apache

    1. service httpd restart

    6、完成

    注:如果安装的是WDCP,重启apache会失败,需要将mod_encoding.so复制到/www/wdlinux/httpd-2.2.22/modules下,
    命令:

    1. cp /usr/lib/httpd/modules/mod_encoding.so /www/wdlinux/httpd-2.2.22/modules
    复制代码

    Nginx:

    一、确定你的Linux系统是UTF编码,Root登录SSH:

    1. env|grep LANG
    2. LANG=en_US.UTF-8
    复制代码

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

    1. server
    2. {
    3. listen 80;
    4. server_name xxxx.com ;
    5. index index.html index.htm index.php;
    6. root /usr/local/nginx/html/inginx.com;
    7. charset utf-8;
    8. }

    三、如果使用putty
    windows –> translation –>UTF-8

    mkdir 中文目录名
    echo ‘中文目录名’ > 中文目录名/中国.html

    四、如果是用securecrt 上传文件,请选择 回话–>外观–UTF-8
    如果是FTP软件也将默认编码设置为TUF-8

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

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

    完毕。


  • 相关阅读:
    4.12 IDEA 如何新建 Java 项目 (图文讲解, 良心教程)
    4.11 AndroidStudio快捷键总结
    4.9 Android AndroidX的迁移
    4.8 build.gradle中正确地导入RecyclerView依赖
    4.6 构建之法7
    4.5 构建之法6
    4.4 构建之法5
    4.3 构建之法4
    4.2 构建之法3
    4.1 构建之法2
  • 原文地址:https://www.cnblogs.com/mhxsh/p/5322540.html
Copyright © 2011-2022 走看看