Nginx下无法使用中文URL的解决方法
程序员文章站
2022-05-12 18:32:02
前言
最近更换了博客空间后,发现许多文章页出现404的情况,找了一下原因,发现是由于url含有中文而nginx默认不支持中文url导致的。此文记录了解决方法。
在a...
前言
最近更换了博客空间后,发现许多文章页出现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。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。
推荐阅读
-
Android4.4下MediaProvider无法向外置SD卡中文件写数据的解决方法
-
Android4.4下MediaProvider无法向外置SD卡中文件写数据的解决方法
-
详解Linux环境下使Nginx服务器支持中文url的配置流程
-
解决ThinkPHP在Nginx下无法使用pathin方式的问题
-
Linux lnmp下无法使用mail发邮件的两种解决方法
-
Nginx下无法使用中文URL的解决方法
-
Nginx服务器下使用rewrite重写url以实现伪静态的示例
-
Python使用matplotlib绘图无法显示中文问题的解决方法
-
linux下nginx不支持中文URL路径的解决方案
-
Cygwin下安装vim后,vim中退格键无法正常使用的解决方法