HTTP在不同的端口redirect到HTTPS
我正在尝试将每个http请求redirect到https服务器。 如果https服务器的端口是443, 这工作正常 。但是,如果我尝试redirect到不同的端口,它不会发生。 这是我的代码:
http.createServer(function(req,res){ var host = req.headers['host'], url = req.url; res.writeHead(301, {"Location": "https://" + host + ":"+SERVER.SPORT + url}) res.end() }).listen(SERVER.PORT) https.createServer(SERVER.HTTPS_OPTIONS,app).listen(SERVER.SPORT)
您的host
很可能已经包含端口号。
你可以确定你是否改变了这个:
var host = req.headers['host']
至:
var host = req.headers['host'].split(':')[0];
还添加一些日志logging:
console.log("https://" + host + ":"+SERVER.SPORT + url);
看看你正在build设的URL是什么样的。
您也可以使用url
模块来处理URL而不是手动连接string以避免类似的错误。 看到:
在任何情况下,添加一些日志logging,以知道你正在build设的URL看起来像。 用curltesting它:
curl -v http://localhost:1234
查看返回的标题。