以下是node.js中的示例:
var https = require("https");
var fs = require("fs");
var options = {
key: fs.readFileSync("/tmp/key.pem"),
cert: fs.readFileSync("/tmp/cert.pem")
};
https.createServer(options, function(req, res) {
res.end("secure!");
}).listen(4430);
var http = require("http");
http.createServer(function(req,res) {
console.log(req);
res.writeHead(301, {"location": "https://" + req.headers["host"] + req.url});
res.end("not secure!");
}).listen(8001);
它会将http://localhost:8001重定向到https://localhost:8001,问题是https服务器正在侦听4430.我该如何解决这个问题?
答案 0 :(得分:0)
好的,只需要一点点字符串操作。而不是req.headers["host"]
,请使用req.headers["host"].split(":")[0]
。