發生原因: 資料庫被用戶上傳了萬惡的中文檔案,於是呢,設定上只認UFT8的各家瀏覽器就哭了....特別是chrome這種URL不能改認BIG5的就慘了,你的用戶永遠只會看見一串亂碼後的網址傳送 Not Found 404的頁面...... 不然就是例如只能出現這種建議方案:無法下載中文檔名的附件嗎? 取消IE瀏覽器「工具/網際網路選項/進階/國際*/傳送 UTF-8 URL(就是不能打V哦)」,然後重新啟動瀏覽器即可 But!這樣子不想用IE,甚至不能用IE的廣大手機用戶怎麼辦? 解決方案: 感謝前人種樹,簡單來說就是把apache當中加入一個mod,名稱為:為fileiri_module 設定方式如下: 1.用centos就很開心了,因為只需要 yum -y install httpd-devel <---加入apache裡mod的編譯器 wget http://dev.w3.org/apache-modules/mod_fileiri/mod_fileiri.c <---上網去把fileiri.c抓回來~ 在你抓檔案的目錄下指令: apxs -i -a -c mod_fileiri.c <----完成編譯,會自動幫你放進apache喔! /etc/httpd/conf/httpd.conf 底下會多出這一行 LoadModule fileiri_module /usr/lib/httpd/modules/mod_fileiri.so <----掛載本module 我們現在只需要在上面這行字的底下多加上: <IfModule mod_fileiri.c> FileIRI On FilenameCharset Big5 </IfModule> 下指令service httpd restart重開apache,一切就搞定了! 參考文獻: ------------------------------------------------------------------------------------------------------ 20131226新增ubuntu底下的安裝方法,因為架構略有不同所以指令與centos有一點差別,apache2 mod_fileiri.so 1.apt-get install apache2-dev 2.wget http://dev.w3.org/apache-modules/mod_fileiri/mod_fileiri.c 3.apxs2 -i -a -c mod_fileiri.c 4.在/etc/apache2/apache2.conf檔案末端底下加入以下內容: <IfModule mod_fileiri.c> FileIRI On FilenameCharset Big5 </IfModule> 5.service apache2 restart ,搞定。 附記: 因為apache2在ubuntu下設定檔稍微比較麻煩,所以如果要載入LoadModule fileiri_module卻在mods-enabled當中找不到,那麼就必須要手動啟用喔! ubuntu下啟動指定Module,可使用a2enmod這個指令 |