You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Node.js的index.js中配置现有页面到其他页面的301重定向

核心问题修正

现有写法的两处硬错误

  • 路由匹配逻辑反向:需要拦截访问旧路径/contact的请求,将其导向新的/to/contact地址;但编写的代码是给/to/contact绑定处理逻辑,完全没有覆盖原/contact路径的请求
  • API调用语法错误:Express内置的res.redirect()不支持链式传参,res.redirect(301).('contact') 这类写法运行时会直接抛出类型错误,无法正常执行
正确的301重定向实现

301对应永久重定向状态码,调用时需将状态码作为第一个参数、跳转目标作为第二个参数传入res.redirect()方法,直接替换原有/contact路由代码即可:

router.get('/contact', function (req, res) {
  // 拦截原/contact路径的GET请求,返回301永久重定向状态,跳转到目标地址
  res.redirect(301, '/to/contact');
});

注意:如果新的/to/contact是部署在独立WordPress站点上的跨域地址,只需将方法的第二个参数替换为对应完整站点路径即可,不需要在Node.js应用内额外为/to/contact配置路由。

生产环境落地注意事项
  • 301状态会被浏览器、搜索引擎长期缓存,只有确定该路径永久迁移时才使用;临时调整路径建议用302状态码,避免后续路径回调时出现缓存残留
  • 跳转时如果需要保留原请求携带的查询参数,可以拼接req.originalUrl的查询串部分,不要直接使用req.path,防止丢失用户请求的附加参数
  • 配置完成后需测试完整链路,避免出现/contact跳/to/contact、/to/contact又跳回/contact的循环重定向问题,否则会直接导致页面加载失败

内容的提问来源于stack exchange,提问作者kenny229

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.23 13:36:04