Перенаправить все URL-адреса на защищенные URL-адреса без www в Node.js - PullRequest
0 голосов
/ 01 июля 2019

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

Все вышеперечисленное следует перенаправить на https://subdomain.domain.com.

Я пробую это в своем приложении Node.js.

app.use('*', function(req, res, next) {

    // https
    if (req.headers["x-forwarded-proto"] == "https") {

        // https with www
        if (req.headers.host.match(/^www/) !== null) {
            res.redirect(301, 'https://' + req.headers.host.replace(/^www\./, '') + req.url);
        }

        // https without www
        else {
            next();
        }
    }

    // http
    else {

        // http with www
        if (req.headers.host.match(/^www/) !== null) {
            res.redirect(301, 'https://' + req.headers.host.replace(/^www\./, '') + req.url);
        }

        // http without www
        else {
            res.redirect("https://subdomain.domain.com" + req.url);
        }
    }
});

Я не могу заставить работать перенаправление. Для четвертого URL, т.е. www.subdomain.domain.com, я также обновил свой DNS.

1 Ответ

0 голосов
/ 01 июля 2019

Ниже фрагмента кода Проверьте, если URL не защищен, он перенаправляет на https с заменой www из URL.

app.use('*',function(req, res, next){
 if (!req.secure) {
   res.redirect('https://' + req.headers.host.replace(/\/\/www\./, '') + req.url);
 }
 next();
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...