DirectAdmin安装mod_encoding支持中文文件名

虽然我从来不喜欢在URL中输入中文,采用中文的页面文件名,或者中文图片名称,但是,还是有部分朋友喜欢这么玩,所以,搜索到在DirectAdmin面板下(Apache2.2.*)支持中文文件名和中文图片名的解决方法,亲测之后在这里做个记录,方便查阅!

以下的DirectAdmin安装mod_encoding支持中文文件名的过程,完全来自全球主机论坛Captain大神分享,特此鸣谢。买DA授权,买景安四线,找Captain大哥!

mod_encoding

由于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.patch

cd lib
chmod 755 configure
./configure –prefix=/usr
make && make install
ldconfig

cd ../
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大哥!


【AD】美国洛杉矶CN2 VPS/香港CN2 VPS/日本CN2 VPS推荐,延迟低、稳定性高、免费备份_搬瓦工vps

【AD】RackNerd 推出的 KVM VPS 特价优惠,在纽约、西雅图、圣何塞和阿什本每年仅需 12.88 美元!