403 Запрещено, когда я открываю сайт впервые - PullRequest
0 голосов
/ 13 мая 2019

У меня есть сайт с экспресс-сервером NodeJS.Он размещен на Heroku.Мое доменное имя просто наблюдает за тем приложением heroku и открывает его, когда я запрашиваю домен моего сайта.

Я заметил, что когда я открываю свой сайт без www.в первый раз (например, с любого нового компьютера, где еще никто не посещал веб-сайт), он выбрасывает 403 запрещенных.И он не перенаправляет на https: // (SSL, сгенерированный Heroku автоматически).

Затем, когда я захожу на сайт с www, он открывается как следует с перенаправлением на https: //.Затем, когда я возвращаюсь и открываю его без www., Он уже перенаправляет на https: // и затем он работает просто отлично.

Я попробовал все эти вещи, чтобы он заработал:

const enforce = require('express-sslify');
export const app = express();

app.use(checkUrl);
app.use(enforce.HTTPS({ trustProtoHeader: true }));

const httpServer = http.createServer(app);
const httpsServer = https.createServer(app);

function checkUrl(req, res, next) {
  const host = req.headers.host;

  if (!host.match(/^www\..*/i)) {
    return res.redirect(301, 'https://www.' + host + req.url);
  } else if (req.headers['x-forwarded-proto'] !== 'https') {
    return res.redirect('https://' + req.hostname + req.url);
  }
  next();
}

Я ожидаю, что мой сайт будет постоянно перенаправляться на https://www.Что мне не хватает?

Вот сайт - onrg.ru Обязательно вводите его именно по этому адресу.

Спасибо

...