首页 > 网站 > Nginx > 正文

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

2024-08-30 12:23:07
字体:
来源:转载
供稿:网友
  前言
  最近更换了博客空间后,发现许多文章页出现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。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表