网站改版后为nginx批量设置重定向规则

  当你的网站改版后,除了Web程序、数据库的升级,还需要为改版前后的URL设置对应的重定向规则,否则会使搜索引擎认为产生了死链,进而导致网页权重的降低。

  1. 新建一个redirect.map映射文件,放置在nginx的主配置目录下,主配置目录可以通过nginx -V命令查看,即编译选项中的--prefix参数,默认位置为/etc/nginx
  2. 为每一对URL填写映射规则,一行一对。其中映射规则如下:
1
~^ 原URL 新URL;

例如,呉真的博客从原先的WordPress程序变更为Hexo程序,链接格式从原先的/%post-id%.html变更为RESTful风格的/posts/%abbrlink%/

1
2
~^/149.html /posts/35dd3195/;
~^/241.html /posts/888cb050/;
  1. 在nginx中声明映射文件,编辑nginx主配置文件,默认为/etc/nginx/nginx.conf,在http域中添加:
1
2
3
4
5
6
7
8
9
......
http {
......
map $request_uri $new {
include /etc/nginx/redirect.map;
}
......
}
......
  1. 为虚拟主机应用重定向规则,编辑虚拟主机配置文件,添加:
1
2
3
4
5
6
7
server {
......
if ($new) {
return 301 https://你的域名$new;
}
......
}
  1. 验证nginx配置文件是否正确nginx -t
  2. 重启nginx服务systemctl restart nginx