gpt4 book ai didi

node.js - HTTP 重定向到不同端口的 HTTPS

转载 作者:可可西里 更新时间:2023-11-01 17:06:06 24 4
gpt4 key购买 nike

我正在尝试将每个 http 请求重定向到 https 服务器。 This works fine如果 https 服务器的端口是 443。但是,如果我尝试重定向到其他端口,则不会发生。这是我的代码:

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];

同时添加一些日志记录:

console.log("https://" + host + ":"+SERVER.SPORT + url);

查看您正在构建的 URL 是什么样的。

您还可以使用 url 模块来处理 URL,而不是手动连接字符串以避免此类错误。见:

在任何情况下,添加一些日志记录以了解您正在构建的 URL 是什么样的。也用 curl 测试它:

curl -v http://localhost:1234

查看返回的 header 。

关于node.js - HTTP 重定向到不同端口的 HTTPS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42165138/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com