Express JS:重写url看起来像/article_name-id.html

时间:2013-04-05 13:28:23

标签: url-rewriting express

我正在构建一个新版本的网站,我必须负责更旧的网址,如下所示: http://website.com/article_title_rewrited-article_id.html

实际上,我尝试做类似的事情:

app.get('/:title\-:id([0-9]).html', function...); 

但当然失败了!

我可以使用expressjs进行这种类型的重写,还是让我使用其他方法来移植url重写?

先谢谢!

1 个答案:

答案 0 :(得分:0)

我看到你正在尝试使用Express url路由解析器以及REGEX表达式,遗憾的是这不起作用,你必须使用其中一个。

删除字符串并放置REGEX图案。然后REGEX表达式中的组将在req.params [0]和req.params [1]中可用。

app.get(/(.+)\.html/, function(req, res, next) {
  res.redirect(req.params[0].substring(0, req.params[0].length - 5)); // -5 for length of '.html'
});

我认为应该(未经测试)对所有.html扩展进行排序,如果这可以作为一个有用的指南:)