Welcome! Log In Create A New Profile

Advanced

Redirect nginx

August 26, 2020 05:35AM
Всем привет. В 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 отдельно - http://site.com/my_api/set/ – my_api/set - это не дирректория на веб сервере. По сути мне кажется /my_api/set/ это не location. Это просто POST запрос в таком виде http(s)://site.com/my_api/set, который обрабатывается index.php. На сайте есть Kohana Controller_Locations_Api который интерпретируется как /my_api/set. Там настроена Кохановская система роутинга, которая считывает URL реквеста и распределяет на нужный контроллер.
Глобально нужно, чтобы код был сразу 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;
}
}
}


Подскажите плииз как быть.
Subject Author Posted

Redirect nginx

jay15 August 26, 2020 05:35AM

Re: Redirect nginx

jay15 August 26, 2020 05:41AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 62
Record Number of Users: 6 on February 13, 2018
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready