将4.x重定向到http [英] express 4.x redirect http to https
本文介绍了将4.x重定向到http的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有以下代码:
var https = require('https');
var http = require('http');
var express = require('express');
var app = express();
var router = express.Router();
app.use('/', router);
//listen server on https
var server = https.createServer(config.sslCredential, app);
server.listen(config.serverPort);
//listen server on http, and always redirect to https
var httpServer = http.createServer(function(req,res){
res.redirect(config.serverDomain+req.url);
});
httpServer.listen(config.httpServerPort);
但不知何故,我无法将https请求重定向到https请求,我该怎么办正确使用express 4.x的node.js?
but somehow i can't get https request to be redirected into https request, how should i do this correctly on node.js with express 4.x ?
推荐答案
从我自己的答案(其中btw是on express 3.0)
Quoting a middleware solution from my own answer (which btw was on express 3.0)
app.all('*', ensureSecure); // at top of routing calls
http.createServer(app).listen(80)
https.createServer(sslOptions, app).listen(443)
function ensureSecure(req, res, next){
if(req.secure){
// OK, continue
return next();
};
// handle port numbers if you need non defaults
// res.redirect('https://' + req.host + req.url); // express 3.x
res.redirect('https://' + req.hostname + req.url); // express 4.x
}
这篇关于将4.x重定向到http的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文