前言
最近更換了博客空間后,發現許多文章頁出現404的情況,找了一下原因,發現是由于URL含有中文而Nginx默認不支持中文URL導致的。此文記錄了解決方法。
在Apache中,要實現對中文的支持需要單獨加載中文模塊,而Nginx是支持多種編碼不需要安裝其他組件的,只是默認是走UTF-8的支持路線。這里提供兩種方法實現Nginx對中文URL的支持。
方法一
利用convmv對文件名轉碼
此方法治標不治本,僅供緊急時候使用(訪問量大時間段,無法對服務器進行重啟操作的時候)。
這里以CentOS為例,其他系統同理。
安裝convmv
yum -y install convmv
轉碼
convmv -fGBK -tUTF8 -r --notest target
其中-f是源編碼,-t是目標編碼,-r是遞歸處理目錄,–notest是不移動,實際上對文件進行改名,target是目標目錄。
方法二
更改Nginx站點配置文件,修改編碼為UTF-8。
系統區域語言設置
# vi /etc/sysconfig/i18n
加入
LANG="en_US.UTF-8"SYSFONT="latarcyrheb-sun16"
并重啟系統(如果沒有此文件則創建)
更改Nginx設置
編輯站點的Nginx配置文件,在sever中添加
charset utf-8;
如:
server{listen 80;servername www.iots.vip;root /www;index index.html index.jsp;charset utf-8;...
同時需要將FTP與shell工具的字符集設置為UTF-8。
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對VEVB武林網的支持。
新聞熱點
疑難解答