Linux上的Apache默認不支持中文名的文件下載,有一段時間讓我很郁悶,因為一個項目中,客戶要求能夠下載中文名的文件,后來不得已在程序里面做處理得以解決,但一直有點不甘心,覺得Apache肯定可以支持的,剛好最近在網上看到了mod_encoding這個模塊,MS這是個日本人寫的(先Bs一下日本,然后把他們的好東西拿來用
)。
首先從這里下載文件:mod_encoding-20021209.tar.gz 這個模塊包,這個包默認是支持Apache 1.3.X的,如果想在Apache2上使用的話,需要在下載另外一個文件文件,在這里下載
[自己下載保存到這里了:/Files/xiaomage234/mod-encoding.rar]
配置步驟如下:
#cp mod_encoding-20021209.tar.gz /usr/local/
#cd /usr/local/
#tar -zxvf mod_encoding-20021209.tar.gz
如果是Apache2
#cp mod_encoding.c.apache2.20020616 /usr/local/mod_encoding-20021209/mod_encoding.c
# cd mod_encoding-20021209/lib
# ./configure
# make
# make install
# vi /etc/ld.so.conf
在最下面添加/usr/local/lib 保存退出。
#PATH="$PATH:/sbin"
#ldconfig
#cd /usr/local/mod_encoding-20021209
#./configure --with-apxs=/www/bin/apxs --with-iconv-hook=/usr/local/include
上面的/www修改為你的Apache安裝目錄
#make
#ls –l
查看是否已經生成了mod_encoding.o文件,如果有,則make成功繼續下邊的操作。
#gcc -shared -o mod_encoding.so mod_encoding.o -Wc,-Wall -L/usr/local/lib -Llib -liconv_hook
#cp mod_encoding.so /usr/lib/httpd/modules/mod_encoding.so
在配制Apache配置文件
#vi /www/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之后,怎么樣?以上方法在RedHat 9上測試通過

首先從這里下載文件:mod_encoding-20021209.tar.gz 這個模塊包,這個包默認是支持Apache 1.3.X的,如果想在Apache2上使用的話,需要在下載另外一個文件文件,在這里下載
[自己下載保存到這里了:/Files/xiaomage234/mod-encoding.rar]
配置步驟如下:
#cp mod_encoding-20021209.tar.gz /usr/local/
#cd /usr/local/
#tar -zxvf mod_encoding-20021209.tar.gz
如果是Apache2
#cp mod_encoding.c.apache2.20020616 /usr/local/mod_encoding-20021209/mod_encoding.c
# cd mod_encoding-20021209/lib
# ./configure
# make
# make install
# vi /etc/ld.so.conf
在最下面添加/usr/local/lib 保存退出。
#PATH="$PATH:/sbin"
#ldconfig
#cd /usr/local/mod_encoding-20021209
#./configure --with-apxs=/www/bin/apxs --with-iconv-hook=/usr/local/include
上面的/www修改為你的Apache安裝目錄
#make
#ls –l
查看是否已經生成了mod_encoding.o文件,如果有,則make成功繼續下邊的操作。
#gcc -shared -o mod_encoding.so mod_encoding.o -Wc,-Wall -L/usr/local/lib -Llib -liconv_hook
#cp mod_encoding.so /usr/lib/httpd/modules/mod_encoding.so
在配制Apache配置文件
#vi /www/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之后,怎么樣?以上方法在RedHat 9上測試通過
加油啊!繼續努力哦!