我想创建状态301重定向,从http://whatever.com/whatever?whatever到https://whatever.com/whatever?whatever等网址。我正在使用node.js,但我怀疑答案是特定于节点的。
我知道您可以使用以下网址编写“位置”标题:
response.writeHead(301, {
'Location': request.url
});
response.end();
但是如何指定我希望重定向转到https?
答案 0 :(得分:1)
为此目的,通常使用301永久重定向。要更改协议,您需要在Location
标头中包含协议和主机:
var server = http.createServer(function(request, response){
var newUrl = 'https://' + request.headers.host + request.url;
response.writeHead(301, {
'Location': newUrl
});
response.end();
});
标准的Node HTTP包不会自动解析主机名和端口,因此如果您需要与非标准端口兼容,则应使用Express之类的包轻松抓取req.hostname
。