最近發(fā)現(xiàn)有很多的url打不開买喧,后來仔細(xì)觀察后發(fā)現(xiàn)是中文url的問題瑟匆,所以這篇文章主要給大家介紹了Nginx下無法使用中文URL的解決方法黄娘,文中提供了兩種方法供大家參考學(xué)習(xí)骨杂,需要的朋友們下面來一起看看吧账嚎。
前言
最近更換了博客空間后莫瞬,發(fā)現(xiàn)許多文章頁出現(xiàn)404的情況,找了一下原因郭蕉,發(fā)現(xiàn)是由于URL含有中文而Nginx默認(rèn)不支持中文URL導(dǎo)致的疼邀。此文記錄了解決方法。
在Apache中恳不,要實(shí)現(xiàn)對中文的支持需要單獨(dú)加載中文模塊檩小,而Nginx是支持多種編碼不需要安裝其他組件的,只是默認(rèn)是走UTF-8的支持路線烟勋。這里提供兩種方法實(shí)現(xiàn)Nginx對中文URL的支持规求。
方法一
利用convmv對文件名轉(zhuǎn)碼
此方法治標(biāo)不治本筐付,僅供緊急時(shí)候使用(訪問量大時(shí)間段,無法對服務(wù)器進(jìn)行重啟操作的時(shí)候)阻肿。
這里以CentOS為例瓦戚,其他系統(tǒng)同理。
安裝convmv
yum -y install convmv
轉(zhuǎn)碼
convmv -fGBK -tUTF8 -r --notest target
其中-f是源編碼丛塌,-t是目標(biāo)編碼较解,-r是遞歸處理目錄,–notest是不移動(dòng)赴邻,實(shí)際上對文件進(jìn)行改名印衔,target是目標(biāo)目錄。
方法二
更改Nginx站點(diǎn)配置文件姥敛,修改編碼為UTF-8奸焙。
系統(tǒng)區(qū)域語言設(shè)置
加入
LANG="en_US.UTF-8"SYSFONT=“l(fā)atarcyrheb-sun16”
并重啟系統(tǒng)(如果沒有此文件則創(chuàng)建)
更改Nginx設(shè)置
編輯站點(diǎn)的Nginx配置文件,在sever中添加
charset utf-8;
如:
server{listen 80;servername www.iots.vip;root /www;index index.html index.jsp;charset utf-8;…
同時(shí)需要將FTP與shell工具的字符集設(shè)置為UTF-8彤敛。
總結(jié)
以上就是這篇文章的全部內(nèi)容了与帆,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流墨榄,謝謝大家對IIS7站長之家的支持玄糟。
文章來源:http://www.iis7.com/b/ssyqdq/