Pages

Friday, 1 January 2016

用Express做www的301跳转

一个挺常用的需求:
1、www域名跳不带www的域名
2、不带www的域名跳www域名
为了SEO或者啥洁癖或者///,反正我喜欢不带www的域名,简单方便,节约资源。
在其他的环境中,我们可以用其他的web服务做跳转(如nginx、apache)。网上也很多,这么就不多说。Node.js中使用express的res.redirect()函数做301跳转
express中,跳转到不带www的域名:
app.get('/*', function (req, res, next) {  
  var haswww = req.headers.host.match(/^www\./)  
    , url = ['http://', req.headers.host.slice(4), req.url].join('');
  haswww ? res.redirect(301, url) : next();  
});
express中,跳转到带www的域名:
app.get('/*', function (req, res, next) {  
  var haswww = req.headers.host.match(/^www\./)  
    , url = ['http://www.', req.headers.host, req.url].join('');
  haswww ? next() : res.redirect(301, url);  
});