我正在使用下面的代码将我的所有流量重定向到不带www的https版本,即我的应用托管在一个子域中。它适用于以下情况:
以上所有内容均应重定向到 https://subdomain.domain.com 。
我正在我的Node.js应用程序中进行尝试。
app.use('*', function(req, res, next) {
// https
if (req.headers["x-forwarded-proto"] == "https") {
// https with www
if (req.headers.host.match(/^www/) !== null) {
res.redirect(301, 'https://' + req.headers.host.replace(/^www\./, '') + req.url);
}
// https without www
else {
next();
}
}
// http
else {
// http with www
if (req.headers.host.match(/^www/) !== null) {
res.redirect(301, 'https://' + req.headers.host.replace(/^www\./, '') + req.url);
}
// http without www
else {
res.redirect("https://subdomain.domain.com" + req.url);
}
}
});
我无法使重定向工作。对于第四个URL,即www.subdomain.domain.com,我也更新了DNS。
答案 0 :(得分:0)
下面的代码片段检查URL是否不安全,它通过替换URL中的www重定向到https。
app.use('*',function(req, res, next){
if (!req.secure) {
res.redirect('https://' + req.headers.host.replace(/\/\/www\./, '') + req.url);
}
next();
})