403首次打开网站时禁止

时间:2019-05-13 10:35:28

标签: ssl redirect heroku https dns

我有使用NodeJS Express服务器的网站。它托管在Heroku上。我的域名只是看着那个heroku应用程序,并在我询问我的网站域时打开它。

我注意到,当我打开没有www的网站时。第一次(例如,从任何一台没有人访问过网站的新计算机),它都禁止403。而且它不会重定向到https://(由Heroku自动生成的SSL)。

然后,当我输入带有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 确保您输入的正是这个网址。

谢谢

0 个答案:

没有答案