有关如何在Express 3.0中执行此操作的任何想法?由于非www网址在网站的不同区域引起了非常奇怪的问题。
谢谢!
答案 0 :(得分:5)
答案对我不起作用。
我使用了以下代码(http://redirect-www.org/#nodejs):
//REDIRECT www.domain.com TO domain.com
app.get ('/*', function (req, res, next){
var protocol = 'http' + (req.connection.encrypted ? 's' : '') + '://'
, host = req.headers.host
, href
;
// no www. present, nothing to do here
if (!/^www\./i.test(host)) {
next();
return;
}
// remove www.
host = host.replace(/^www\./i, '');
href = protocol + host + req.url;
res.statusCode = 301;
res.setHeader('Location', href);
res.write('Redirecting to ' + host + req.url + '');
res.end();
});
关注:这会将www重定向到非www,如果您想要相反,请删除not
条件中的if
,然后替换host = host.replace(/^www\./i, '');
与host = 'www.' + host;
答案 1 :(得分:3)
所以我从另一个问题找到答案。
Node.js: 301 redirect non-www without express
很抱歉没有在
之前搜索app.get ('/*', function (req, res, next){
if (!req.headers.host.match(/^www\./)){
res.writeHead (301, {'Location': 'http://mysite.com'});
}else{
return next();
}
});