Редирект на 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