Я прочитал довольно много сообщений с таким же названием. Я пробовал предложения, которые были даны, но не сработало
Я хочу автоматически перенаправлять в производство - если это не защищено. Это приложение angular2, api сервера.
Это первое промежуточное ПО в express app.js
// HTTPS
app.use (function (req, res, next) {
if ( req.secure || req.headers.host === 'localhost:3002' ) {
next();
} else {
res.redirect('https://' + req.headers.host + req.url);
}
});
Сообщение, которое я получаю от FF, таково
The page isn’t redirecting properly
Firefox has detected that the server is redirecting the request for this address in a way that will never complete.
This problem can sometimes be caused by disabling or refusing to accept cookies.
У меня не отключены файлы cookie. и я не делаю ссылку на протокол в angular, поэтому я не знаю, почему он отказывается от перенаправления. Где я могу посмотреть? Что я могу попробовать?
@jfriend - у меня только один сервер.
Как у вас может быть только один сервер? У вас должен быть другой сервер для http и https, потому что они на разных портах, а один прослушивает https. Ваш https-сервер НЕ должен выполнять перенаправление. Вероятно, проблема здесь, потому что он создает бесконечный цикл перенаправления, который, вероятно, обнаруживает браузер. Если вы разделяете код между двумя серверами, вам нужно убедиться, что вы НЕ перенаправляете, когда протокол уже https.





Очевидно, Express инкапсулирует некоторый синтаксический анализ заголовков, и мне нужно было включить
app.enable ('доверенный прокси');
отличная статья - https://www.tonyerwin.com/2014/09/redirecting-http-to-https-with-nodejs.html
У вас есть этот код перенаправления на вашем https-сервере? Его там не должно быть, только на вашем http-сервере.