我尝试创建一个 BACKEND 重定向路由('go' 路由,见下文),它将重定向到通过某个 ID 存储在我的数据库中的链接。例如,我会有一个链接:
http://backend:3000/go/slug-name-of-post
后端 ExpressJS 路由如下所示:
router
.route('/go/:slug')
.get(controller.go)
控制器在使用 SLUG 作为键从数据库获取 URL 后简单地执行重定向:
url = database.getUrlBySlug(slug)
return res.redirect(url);
这部分效果很好 - 我可以输入后端 url,它重定向得很好。
但现在我正在 VueJS FRONTEND 上工作,我想将链接包含到我的前端网页中,但我不希望此链接直接指向 BACKEND 链接 - 我希望这些链接指向我的 FRONTEND。主要原因是我希望能够共享这些链接,并且我希望链接名称包含我的 FRONTEND 名称而不是 BACKEND 和端口号等。
例如,我想在我的 FRONTEND 上链接:
http://frontend/go/slug-name-of-post
然后我希望前端(Vue-Router??)根据“slug”是什么重定向到正确的后端。其中 'slug' 定义在:http://frontend/go/:slug
实现这一目标的最佳方法是什么?我是否只是创建了一个 Vue-Router 路由?如果是这样,我如何让它重定向到不同的网页而不是前端的组件?还是我需要在前端创建一些内部重定向到后端的组件?
主要问题是我不希望用户在看到链接时看到我后端的 URL 地址 - 或共享链接等。我希望链接始终指向我的前端,因此我的前端必须处理初始路由。我想我可以让前端 VUE 组件执行一组类似的 ExpressJS 后端调用以获取要重定向到的最终 URL,然后从前端进行重定向?
提前致谢。