Javascript 在没有Express的情况下,如何在Node.js中路由子域?
解释如何使用Express在Node.js中路由子域的答案 我想知道没有快递怎么办 这是我的服务器模块,它返回一个服务器对象:Javascript 在没有Express的情况下,如何在Node.js中路由子域?,javascript,node.js,Javascript,Node.js,解释如何使用Express在Node.js中路由子域的答案 我想知道没有快递怎么办 这是我的服务器模块,它返回一个服务器对象: module.exports.serve = function(port) { var server = https.createServer(options, function(req, res) { // Parse & process URL var reqInfo = url.parse(req.url, tru
module.exports.serve = function(port) {
var server = https.createServer(options, function(req, res) {
// Parse & process URL
var reqInfo = url.parse(req.url, true, true),
path = reqInfo.pathname;
debug.log("Client [" + req.connection.remoteAddress +
"]requesting resource: " + path);
// Quickly handle preloaded requests
if (preloaded[path])
preloadReqHandler(req, res, preloaded[path], path);
// Handle general requests
else generalReqHandler(req, res, reqInfo);
}).listen(port);
return server;
};
无需详细介绍处理请求的模块,我只对如何通过服务器检测www.example.com并将其路由到example.com或反之亦然感兴趣
为了尽可能多地添加细节,我的目标是从http://www.example.com 和http://example.com 和https://www.example.com 并将其全部发送给https://example.com. 要做到这一点,我想我只需要学习如何路由www子域,然后在http和https端口上侦听该路由 自HTTP 1.1以来,用户代理发送指定域的主机请求头。因此,如果从req.headers['host']指定,您可以获取包含端口的域,并应用自定义域路由逻辑
如果您使用的是HTTP 1.0或更老的用户代理,则只需使用不支持的505 HTTP版本回复,或提供一些默认内容。我不擅长这方面,因此不将此作为回答,但如果您不使用express,您只需检查它是否以return a 302 with开头,然后所有内容都将被快速重定向。