如何在Express+Node.js后端实现从index.ejs到根路径的重定向?
解决方法
1. 后端实现/index.ejs到/的重定向
Express自带的res.redirect()方法就能搞定,直接在/index.ejs的路由里返回重定向响应就行,用301永久重定向还能优化SEO:
// index.js app.get("/", (req, res) => { res.render("index.ejs") }) // 替换原来的渲染逻辑,改成重定向到根路径 app.get("/index.ejs", (req, res) => { res.redirect(301, "/") })
2. 从根源避免带.ejs的URL(更推荐)
现在点击Home链接会跳转到index.ejs,本质是前端链接写得不对,直接把链接改成干净的路由路径,同时调整后端路由配置:
修改前端链接(header.ejs)
把href里的index.ejs、about.ejs这类后缀去掉,换成纯路径:
<%# index.ejs (header.ejs) %> <div class="Header"> <h1 class="w">Vishesh's Site</h1> <a class="r" href="/">Home</a> <a class="r" href="/about">About</a> <a class="r" href="/contact">Contact</a> </div>
调整后端路由
给About、Contact页面配置对应的路由,渲染对应的EJS模板:
// index.js app.get("/about", (req, res) => { res.render("about.ejs") }) app.get("/contact", (req, res) => { res.render("contact.ejs") })
这样用户不管怎么跳转,URL都是干净的/、/about、/contact,不会再出现.ejs后缀,彻底解决混淆问题。
内容的提问来源于stack exchange,提问作者Vishesh
相关产品推荐
相关产品推荐

