2016-07-20 10 views
0

Ich verwende Express Framework.Umleiten von HTTP zu HTTPS führt zu unendlichen Weiterleitungen - nodejs?

Ich möchte Nutzer, die meine http://mypage.com zu https://mypage.com

Ich besuche diese Middleware versucht:

app.use(function(req,res,next){ 
    if(req.secure) 
     next(); 
    else 
     res.redirect('https://'+res.get('host')+res.originalUrl); 
}); 

Ich habe auch versucht if(req.protocol == 'https')

Das funktioniert sehr gut in der lokalen Umgebung. Ich werde umgeleitet zu https://localhost:3000, wenn ich besuche http://localhost:3000

Aber wenn ich es auf OpenShift hochladen, bekomme ich eine unendliche Umleitung Fehler.

Was hätte schiefgehen können? Meine Hauptabsicht besteht darin, den Benutzer umzuleiten, um die ganze Zeit HTTPS zu sehen.

Antwort

0

versuchen, dies ..

var express = require('express'); 
var requireHTTPS = require('https');  
var redirect = express(); 
var redirectServer = http.createServer(redirect); 
redirect.use(function requireHTTPS(req, res, next) { 
if (!req.secure) { 
return res.redirect('https://' + req.headers.host + req.url); 
} 
next(); 
}) 
redirectServer.listen(3000); 
+0

ist 'requireHTTPS' für HTTPS-Anfragen ein Wrapper ist? –

+0

ja..Sie können dies zum obigen Code hinzufügen 'var requireHTTPS = require ('https'); ' –