nginx下無法訪問中文文件名的解決方法(fǎ)
今天在網上尋找關於Nginx訪問中文目錄及文件名的解決方法,偶然看到qwqg的一(yī)篇文章!
解決問題的(de)思(sī)路很清晰,特轉(zhuǎn)載過來(lái)與大家一(yī)起分享!該方法還沒有親自測(cè)試,所以不太確定是否真有(yǒu)用!
方(fāng)法一:
搞了大半天nginx下無法訪問中文文件名的問題,現在看來是secureCRT的問題(tí)?
看來(lái)還是字符集的問題了。
看來nginx不需要象apache那樣要單獨加載支(zhī)持(chí)中文模塊。
服務器端字符集如下
[root@test]# locale
LANG=en_US.UTF-8
LC_CTYPE=”en_US.UTF-8″
LC_NUMERIC=”en_US.UTF-8″
LC_TIME=”en_US.UTF-8″
LC_COLLATE=”en_US.UTF-8″
LC_MONETARY=”en_US.UTF-8″
LC_MESSAGES=”en_US.UTF-8″
LC_PAPER=”en_US.UTF-8″
LC_NAME=”en_US.UTF-8″
LC_ADDRESS=”en_US.UTF-8″
LC_TELEphones=”en_US.UTF-8″
LC_MEASUREMENT=”en_US.UTF-8″
LC_IDENTIFICATION=”en_US.UTF-8″
LC_ALL=
在nginx.conf文(wén)件裏配置的(de)字符集也是(shì)utf-8
server {
listen 80;
server_name test.cn;
root /data;
index index.html index.jsp;
charset utf-8;
客戶端用的是secureCRT,字符集用的是defalut,用rz上傳後在服務器上用ls顯示亂碼,用ie怎麽瀏覽都不能正常看到。
找朋友測試了一下他那(nà)邊的nginx,中文顯示居然一(yī)切正常,後來他告訴我他的(de)secrueCRT用的字符集是utf-8,我改(gǎi)用uft-8後再(zài)用rz上傳文件,在ie下中文可以正常顯示了。
方法二:
一:確定你的係(xì)統是UTF編碼
[root@Tserver ~]# env|grep LANG
LANG=en_US.UTF-8
二:NGINX配置文件(jiàn)裏設置為
server
{
listen 80;
server_name .inginx.com ;
index index.html index.htm index.php;
root /usr/local/nginx/html/inginx.com;
charset utf-8;
}
三:如果使用(yòng)putty
windows --> translation -->UTF-8
mkdir NGINX中文技(jì)術站
echo NGINX中(zhōng)文技術站 > 中國.html
四(sì),如果是用securecrt 上傳文件,請選擇 回話-->外觀--UTF-8
五,如果出現文件名亂碼顯示
執行
for f in `ls *.html` ; do mv $f `ls $f|iconv -f GBK -t UTF-8`; done
另一位朋友的解決方案是(shì):
我(wǒ)現在用的方法是
在後端個別(bié)目(mù)錄用APACHE代理了(le) 。。
APACHE支持中文(wén)碼。。
locations /~doc/ {
proxy_pass http://127.0.0.1:81/;#apache server
}
以上(shàng)供大家參考!
關(guān)鍵詞:nginx,解決方法
閱讀本文後您有什麽感想(xiǎng)? 已有 人(rén)給出評價!
- 1
- 1
- 1
- 1
- 1
- 1