javascript - 带/不带尾部斜线的 Node.js 重定向

标签 javascript node.js redirect

我有一个 javascript,它根据 URL 执行不同的操作。 为此,我需要具有一致的 URI。

例如,我需要用户始终访问 www.site.com/users/bob/ 而不是 www.site.com/users/bob/p>

不幸的是,node 似乎不支持它。

我试过重定向

router.get('/:user', function(req, res) {
    res.redirect('/users/' + req.params.user' + '/');
});

但这只会导致重定向循环,因为带斜线和不带斜线的 URL 似乎被视为相同。

我该怎么做? 谢谢!

编辑:

我想从 WITHOUT 斜线路由到 WITH 斜线。 另一个问题的答案恰恰相反。 我不能 .substr(-1) 我的 URL

最佳答案

如果其他人正在寻找快速的零依赖解决方案,这对我来说效果很好:

app.get('/:page', function(req, res){
  // Redirect if no slash at the end
  if (!req.url.endsWith('/')) {
    res.redirect(301, req.url + '/')
  }

  // Normal response goes here
});

关于javascript - 带/不带尾部斜线的 Node.js 重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34556302/

相关文章:

node.js - 使用 Restify 的 CORS 配置

python - Google App Engine 在按钮点击时重定向到用户登录

asp.net-mvc - ASP.NET MVC : strange POST behavior

Javascript [病毒?] 自动添加到每个页面上

javascript - 在不使用 javascript 重定向的情况下更改 url

javascript - 我可以从 <input type ="date"> 访问显示给用户的区域设置格式的字符串吗?

node.js - 由于 "console-browserify",GitHub 存储库导致 Travis CI 构建失败

javascript - redux-saga API 调用返回什么? (举个例子)

node.js - 如何将测试数据从生产环境导入 Firebase Firestore 模拟器以便于测试?

java - Spring MVC 中的 RedirectView 不起作用