Я пытаюсь заставить мое приложение Express перенаправлять пользователей на HTTPS, когда они посещают сайт по HTTP. Я посмотрел на этот вопрос:
Автоматическое соединение HTTPS / перенаправление с помощью node.js / express
но у него не было ответов, которые я искал. Я использую httpolyglot:
https://github.com/mscdex/httpolyglot
потому что я хочу сделать это только на одном порту, а httpolyglot работает так, как объявлено, но я не могу заставить работать перенаправление. Вот мой код:
var express = require('express');
var https = require('https')
var gulp = require('gulp');
var fs = require('fs');
var httpolyglot = require('httpolyglot');
var app = express();
require('./gulpfile');
gulp.start('config');
const options = {
key: fs.readFileSync("/path/to/key.key"),
cert: fs.readFileSync("/path/to/cert.cer")
};
app.use(express.static(__dirname));
app.use(function(req, res) {
if (!req.socket.encrypted) {
res.writeHead(301, {'Location': 'https://' + req.host + req.url});
return res.end()
}
});
app.get('/landing', function(req, res) {
res.sendFile(__dirname + '/landing.html');
});
// Defer all other routes to the angular app
app.use(function(req, res) {
res.sendFile(__dirname + '/index.html');
});
httpolyglot.createServer(options, app).listen(3004);