需求背景
最近项目在做架构升级,由原来的SSM的单体架构变成前后端分离的项目,原项目使用了大量的动态路由,由于时间原因,我们不能使用VUE等支持动态路由的技术,这就导致之前大量的路径会改变。由于一些页面被做成了二维码,印刷在了纸质文件中。所以这部分功能只能保持原来的路径可以正常访问。
解决思路
新项目的前端是部署在Nginx中的,原有的动态路由继续访问会显示404错误,我们需要通过nginx捕获404错误,将错误的路由变成参数,发送到后台,按照相应规则处理,重定向到对应的页面即可
Nginx对应配置
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
proxy_intercept_errors on; #http全局块捕获异常必须添加
server {
listen 80;
server_name 你的域名;
location ~/(.*)$ {
root html;
index index.html index.htm;
error_page 404 http://你的后台地址?p=$1;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
总结:1.proxy_intercept_errors on; 开启异常捕获
2.使用正则匹配获取url,$1是获取到的路由,作为参数发送给对应的接口

项目架构升级为前后端分离,原大量动态路由路径改变,但部分页面已印成二维码,需保持原路径可访问。解决思路是通过Nginx捕获404错误,将错误路由作为参数发送到后台处理后重定向。还给出了Nginx对应配置及后台处理方法。
最低0.47元/天 解锁文章

135





