Skip to content

Редирект на HTTPS для всех URL кроме нескольких

Редирект на HTTPS для всех URL кроме нескольких

Затем над блоками server добавляем

map $uri $redirect_https {
    /urls/page_1         0;
    /urls/page_2         0;
    /urls/page_3         0;
    default              1;
}

где /urls/page_{1,3} — это адреса, при обращении к которым не должен производиться редирект на HTTPS.

В блок вида

server {
    listen 80;
    # что-то ещё
}

где-то после listen(к примеру, в конец блока) добавляем

    if ($redirect_https = 1) {
       return 301 https://$server_name$request_uri;
    }

Естественно, это решение можно использовать и в обратную сторону(для организации редиректов с HTTPS на HTTP для таких URL).

полезные ссылки

Примеры использования map c regex и без Ещё немного примеров с map Официальная документация по map Раскрытие возможностей map в nginx