我已经安装了快速运行的服务器,但没有任何问题,但是如果我尝试将www.example.com路由到https,将会很困难。
我创建了https服务器,该服务器侦听默认端口443,并表示侦听默认端口80。
如果我输入example.com重定向到https://example.com,但是如果我输入www.example.com,则它不安全,因此在这里我需要重定向到https://examle.com。我尝试过但没有用的东西。
app.get( '/', function(req, res, next) {
if((req.get('X-Forwarded-Proto') !== 'https')) {
res.redirect('https://' + req.get('Host') + req.url);
} else {
next();
}
})
这是我尝试过的简单代码
var enforce = require('express-sslify');
app.use(express.static('./dist/restraunt'));
app.use(enforce.HTTPS());
app.use(redirectUnmatched);
app.listen(port);
https.createServer(options, app).listen(443);
function redirectUnmatched(req, res) {
res.redirect("https://example.com");
}
答案 0 :(得分:0)
如果您要将www重定向到https,那么这里是解决方法
在您的app.js中输入以下代码
app.get('*', function (req, res, next) {
var checkHost = req.get('host').substring(0, 4);
var condition = req.get('x-forwarded-proto') !== "https" || checkHost !== 'www.' || ( req.get('host').indexOf('www.') < 0);//
if (condition) {
res.set('x-forwarded-proto', 'https');
if (checkHost === 'www.' && ( req.get('host').indexOf('www.') >= 0)) {
res.redirect('https://' + req.get('host') + req.url);
}
else {
res.redirect('https://www.' + req.get('host') + req.url);
}
} else {
next();
}
});