当前位置 主页 > 服务器问题 > nginx问题汇总 >

    Nginx下无法使用中文URL的解决方法

    栏目:nginx问题汇总 时间:2018-09-27 17:06

    最近发现有很多的url打不开,后来仔细观察后发现是中文url的问题,所以这篇文章主要给大家介绍了Nginx下无法使用中文URL的解决方法,文中提供了两种方法供大家参考学习,需要的朋友们下面来一起看看吧。

    前言

    最近更换了博客空间后,发现许多文章页出现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。

    总结

    以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对IIS7站长之家的支持。

缩小 缩小 缩小 缩小