虽然我从来不喜欢在URL中输入中文,采用中文的页面文件名,或者中文图片名称,但是,还是有部分朋友喜欢这么玩,所以,搜索到在DirectAdmin面板下(Apache2.2.*)支持中文文件名和中文图片名的解决方法,亲测之后在这里做个记录,方便查阅!
以下的DirectAdmin安装mod_encoding支持中文文件名的过程,完全来自全球主机论坛Captain大神分享,特此鸣谢。买DA授权,买景安四线,找Captain大哥!
由于32位和64位系统下的操作方式略有差异,所以分开表述。首先,我们来看32bit CentOS下的安装方式。
以root用户SSH登陆服务器,然后逐步如下代码。
wget ftp://ftp.aconus.com/fc5/mod_encoding/mod_encoding-2.2.0-1.i386.tar.gz #下载安装包
tar zxvf mod_encoding-2.2.0-1.i386.tar.gz #解压
rpm -ivh iconv_hook-1.0.0-1.i386.rpm
rpm -ivh mod_encoding-2.2.0-1.i386.rpm #安装
安装之后,我们还需要修改配置文件,让Apache支持中文名。
vi /etc/httpd/conf/httpd.conf #编辑httpd.conf
加入如下内容
LoadModule encoding_module /usr/lib/httpd/modules/mod_encoding.so
<IfModule mod_headers.c>
Header add MS-Author-Via "DAV"
</IfModule>
<IfModule mod_encoding.c>
EncodingEngine on
NormalizeUsername on
SetServerEncoding GBK
DefaultClientEncoding UTF-8 GBK GB2312
AddClientEncoding "(Microsoft .* DAV $)" UTF-8 GBK GB2312
AddClientEncoding "Microsoft .* DAV" UTF-8 GBK GB2312
AddClientEncoding "Microsoft-WebDAV*" UTF-8 GBK GB2312
</IfModule>
保存,退出,然后重启Apache。
service httpd restart
【注意】以上的httpd.conf和mod_encoding.so的位置,可能会有不同,大家根据自己的位置修改。
如果您是使用64bit系统安装DirectAdmin,请往下看,上面的操作仅适用于32bit系统。
首先,安装必要组件。
yum install gcc –y #安装gcc组件
wget http://d.nicwind.com/files/mod_encoding_64.tar.gz #下载压缩包
tar zxvf mod_encoding_64.tar.gz #解压
接下来逐步编译。
tar zxvf mod_encoding_64.tar.gz
cd mod_encoding_64
patch -p0 < mod_encoding.c-apache2.2-20060520.patchcd lib
chmod 755 configure
./configure –prefix=/usr
make && make install
ldconfigcd ../
chmod 755 configure
cp -p /usr/sbin/apxs /usr/bin
./configure –with-apxs=/usr/bin/apxs –with-iconv-hook=/usr/include
make
gcc -shared -o mod_encoding.so mod_encoding.o -Wc,-Wall -Llib -liconv_hook
cp mod_encoding.so /usr/lib/httpd/modules
【注意】最后一行代码中的/usr/lib/httpd/modules请根据modules位置自行修改之。
接下来,我们还是需要修改Apache的配置文件。
vi /etc/httpd/conf/httpd.conf #编辑httpd.conf
加入下面的内容。
LoadModule encoding_module modules/mod_encoding.so
<IfModule mod_encoding.c>
EncodingEngine on
NormalizeUsername on
SetServerEncoding GBK
DefaultClientEncoding UTF-8 GBK GB2312
AddClientEncoding "(Microsoft .* DAV $)" UTF-8 GBK GB2312
AddClientEncoding "Microsoft .* DAV" UTF-8 GBK GB2312
AddClientEncoding "Microsoft-WebDAV*" UTF-8 GBK GB2312
</IfModule>
【注意】上面的modules/mod_encoding.so请根据自己编译的mod_encoding.so文件位置自行调整代码。
保存,退出,最后重启Apache就可以了!
service httpd restart
好了,以上就是给DirectAdmin安装mod_encoding让它支持中文URL文件名的全部过程了。本教程原文引用Captain大神发布在全球主机论坛的帖子,特此鸣谢。买DA授权,买景安四线,都可以找Captain大哥!