любая идея о том, как я могу это сделать в Express 3.0? Поскольку URL-адрес, отличный от www, вызывает очень странные проблемы в разных областях веб-сайта.NodeJS Перенаправить все не-www на www кроме поддоменов
Спасибо!
любая идея о том, как я могу это сделать в Express 3.0? Поскольку URL-адрес, отличный от www, вызывает очень странные проблемы в разных областях веб-сайта.NodeJS Перенаправить все не-www на www кроме поддоменов
Спасибо!
Так что я нашел ответ от другого вопроса.
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();
}
});
Ответ не работает для меня.
Я использовал следующий код (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();
});
Care: это будет перенаправлять WWW к не-WWW, если вы хотите, наоборот, удалить not
при условии if
, а затем заменить host = host.replace(/^www\./i, '');
с host = 'www.' + host;
отлично работал. – kalin