Nginx HTTPS, когда соответствует только вложенная папка администратора [закрыто]

1

Мне удалось перенаправить все запросы / admin на https:

server {
    listen 80;

    location /admin {
        rewrite ^ https://$server_name$request_uri?$args permanent;
    }
}

Но не могу понять, как получить все запросы https, которые не находятся в / admin, перенаправлены на http, пока у меня есть:

server {
    listen       443;

    location ~ /admin {
        rewrite ^ http://$server_name$request_uri?$args permanent;
    }
}

РЕДАКТИРОВАТЬ:

У меня есть переадресация, работающая по мере необходимости, но я не могу остановить переход к / admin на 404. Такое ощущение, что мне нужно поместить что-то в пустой блок.

server {
    listen       443;

    location /admin {

    }   

    location / {
        rewrite ^ http://$server_name$request_uri?$args permanent;
    }
}

Спасибо

sebastyuiop
источник
Я думаю, что это может ответить на мой вопрос wiki.nginx.org/HttpCoreModule#location . «Нет синтаксиса для НЕ соответствия регулярному выражению. Вместо этого сопоставьте целевое регулярное выражение и назначьте пустой блок, а затем используйте расположение / для сопоставления чего-либо еще».
sebastyuiop,
Пожалуйста, не пересекайте сообщение - ваш вопрос будет перенесен на лучший сайт, если он не по теме.
Slhck

Ответы:

0

Вам нужно как-то служить, когда /adminзагружен. Так что решайте, что вы хотите, чтобы вам служили.

Например:

location /admin {
    try_files $uri $uri/ =404;
}

будет обслуживать статические файлы в этом каталоге. Добавьте все, что вам нужно.

Майкл Хэмптон
источник