NGINX重定向实践

794 词

本站曾转载过一篇文档,文章中的链接全部为相对路径,如果直接点击会进入本站404界面,本文通过配置Nginx重定向方法来实现特定链接的重定向

需求分析

按需重定向链接,将[https://blog.zekun.fun/2023/docs@css的浏览器兼容性表/](https://blog.zekun.fun/2023/docs@css%e7%9a%84%e6%b5%8f%e8%a7%88%e5%99%a8%e5%85%bc%e5%ae%b9%e6%80%a7%e8%a1%a8/)XXX.php(具体属性值.php)跳转到https://www.w3schools.com/cssref/XXX.php,其他情况下不跳转。

实现方法

在NGINX配置文件中加入以下几行代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 多重条件使用flag标记    
set $css_broswer_flag 0;

# 检测文章,只在此文章存在时执行
if ($uri ~ "^/2023/docs@css的浏览器兼容性表/") {
set $css_broswer_flag "${css_broswer_flag}1";
}

#检测到存在php文件则执行
if ($uri ~ ".*\.php$"){
set $css_broswer_flag "${css_broswer_flag}1";
}

# 同时存在以上两个条件则执行重定向
if ($css_broswer_flag = "011"){
rewrite ^/2023/docs@css的浏览器兼容性表/(.*) https://www.w3schools.com/cssref/$1 permanent;
}