Nginx 使用中文URL,中文目录路径
Nginx 使用中文URL,中文目錄路徑
分類:?linux2012-05-03 11:04?2672人閱讀?評論(0)?收藏?舉報 nginxurl服務器translationcentosserver[root@Tserver ~]# env|grep LANG
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? LANG=en_US.UTF-8
二:NGINX配置文件里默認編碼設置為utf-8
server{
listen 80;
server_name .inginx.com ;
index index.html index.htm index.php;
root /usr/local/nginx/html/inginx.com;
charset utf-8;
}
三:如果使用putty
windows –> translation –>UTF-8
mkdir NGINX中文技術站
echo ‘NGINX中文技術站’ > NGINX中文技術站/中國.html
四,如果是用securecrt 上傳文件,請選擇 回話–>外觀–UTF-8
如果是FTP軟件也將默認編碼設置為TUF-8
五,如果上傳的文件名出現亂碼顯示執行
for f in `ls *.html` ; do mv $f `ls $f|iconv -f GBK -t UTF-8`; done
?
?
?
?
?
Nginx下的中文路徑及中文文件名的處理
在IE下默認是以UTF-8的方式編碼URL,向服務器發送請求,當中文出現在URL中的時候,就會被以UTF-8的方式編碼,發送向服務器。這個時候服務器的字符集就會影響到WEB對URL的解碼。
??? 很多時候在其實不論是NGINX還是APACHE,問題的本質在于瀏覽器端請求的字符集和服務器端的字符集是否一致,當出現不一致的時候,服務器就無法找到請求的路徑,從而出現404 NOT FOUND的錯誤。解決方案可以從以下幾方面開始
1、服務器的系統字符集
??? 在centos下可以用echo $LANG查看。可以在vi /etc/profile 中增加
?? export zh_CN.utf-8
???export LANG=zh_CN.utf-8
? 然后重新啟動服務器,即可生效
2、nginx的conf文件中配置的字符集
?? 在../nginx/conf/nginx.conf中的charset設置。
3、被請求的文件路徑或者文件名的字符集。
? 第1和第2點更改很容易,第3點,更改文件名的字符集,需要使用工具convmv才能完成
? convmv 可以從http://j3e.de/linux/convmv?下載,
? wget?http://j3e.de/linux/convmv/convmv-1.14.tar.gz
? tar -zxvf convmv-1.14.tar.gz
? cd convmv-1.14
? make clean;
? make install;
? 如:
??./convmv -f GB2312 -t UTF-8 -r --nosmart --notest userfiles/*.*
? 以上表示 userfiles下的所有文件的文件名由GB2312轉換為UTF-8
?
?? 對于文件內容的字符集轉換可以使用iconv
轉載于:https://www.cnblogs.com/archoncap/p/4861287.html
總結
以上是生活随笔為你收集整理的Nginx 使用中文URL,中文目录路径的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 浮点类型的精度问题
- 下一篇: 架构设计系列-前端模式的后端(BFF)翻