Linux下Apache支持中文URL

将网站迁移到CentOS下后,突然发现,带中文的目录以及文件无法通过URL来访问了。 困扰了好几天,终于找到了解决方法。

mod_encoding是日本人开发的一个Apache模块,用以支持中文、日文等非英文URL。如:http://www.test.com/宝莱坞.mp3

1、安装mod_encoding

需要下载两个rpm包(iconv_hook-1.0.0-1.i386.rpm和mod_encoding-2.2.0-1.i386.rpm):

wget http://www.xiit.cn/attachments/tools/iconv_hook-1.0.0-1.i386.rpm

wget http://www.xiit.cn/attachments/tools/mod_encoding-2.2.0-1.i386.rpm

用rpm命令安装:

rpm -ivh iconv_hook-1.0.0-1.i386.rpm

rpm -ivh mod_encoding-2.2.0-1.i386.rpm

2、配置:

(1) 开启mod_encoding支持,需要开启Apache自带的mod_header模块

在/etc/httpd/conf/httpd.conf中,

LoadModule headers_module modules/mod_headers.so //一般默认为开启,无需更改

(2) 安装mod_encoding RPM包时会自动生成mod_encoding.conf

vi /etc/httpd/conf.d/mod_encoding.conf

LoadModule encoding_module modules/mod_encoding.so

<IfModule mod_encoding.c>

EncodingEngine on

NormalizeUsername on

SetServerEncoding GBK

DefaultClientEncoding UTF-8 GBK GB2312

AddClientEncoding "cadaver/" UTF-8 GBK GB2312

</IfModule>

保存后,重启Apache服务,大功告成!

转自:http://blog.csdn.net/kangqing2003/article/details/6660763