Всем привет. В nginx не силен, но нужно сделать исключение из редиректа.
Есть сайт, там настроено http перенаправлять на https. Вот кусок конфига:
server {
listen 80;
server_name site.com www.site.com;
location /.well-known/acme-challenge/ { alias /var/lib/dehydrated/acme-challenges/; }
location / {
rewrite ^ https://site.com$request_uri? permanent;
}
}
server {
listen 443;
server_name www.site.com;
ssl on;
ssl_certificate /etc/letsencrypt/live/site.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/site.com/privkey.pem;
location / {
rewrite ^ https://site.com$request_uri? permanent;
}
}
Нужно вот такой адрес убрать из редиректа, чтобы он работал по http и https отдельно - https://site.com/my_api/set/ – my_api/set - это не дирректория на веб сервере. Глобально нужно, чтобы код был сразу 200, а сечас HTTP/1.1 301 Moved Permanently и потом HTTP/1.1 200 OK
Пробовал вот так:
server {
listen 80;
server_name site.com www.site.com;
location /.well-known/acme-challenge/ { alias /var/lib/dehydrated/acme-challenges/; }
location / {
if ($request_uri !~ /my_api/set) {
rewrite ^ https://site.com$request_uri? permanent;
}
}
}
Не получается. Направьте плиз в нужное русло.