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;
    }
}

Спасибо


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

Пожалуйста, не пересекайте сообщение - ваш вопрос будет перенесен на лучший сайт, если он не по теме.
Slhck

Ответы:


0

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

Например:

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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.