该问题的答案说明了如何使用Express路由Node.js中的子域。
我想知道如何在没有Express的情况下进行操作。
这是我的服务器模块,它返回一个服务器对象:
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开始,用户代理发送Host
指定域的请求标头。因此,您可以从中获取域(包括端口,如果指定的话),req.headers['host']
并应用您的自定义域路由逻辑。
如果您使用的是HTTP 1.0或更旧的用户代理,则只需回答“ 505不支持HTTP版本”或提供一些默认内容即可。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句