'use strict';
const http = require('http');
const https = require('https');
const express = require('express');
const tlsOptions = {
//подставьте сюда конфиг для tls/ssl
};
const appWWW = express();
const appSub = express();
http.createServer((req, res) => {
switch(req.headers.host) {
case 'example.com':
case 'www.example.com':
res.writeHead(301 /*или 302 если без кэша*/, {
Location: 'https://' + req.headers.host + req.url
});
res.end();
break;
case 'sub.example.com':
appSub(req, res);
break;
}
}).listen(80);
https.createServer(tlsOptions, (req, res) => {
switch(req.headers.host) {
case 'example.com':
case 'www.example.com':
appWWW(req, res);
break;
}
}).listen(443);
примерно так