Redirect nginx
jay15
nginx-forum на forum.nginx.org
Ср Авг 26 09:35:30 UTC 2020
Всем привет. В 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;
}
}
}
Подскажите плииз как быть.
Posted at Nginx Forum: https://forum.nginx.org/read.php?21,289197,289197#msg-289197
Подробная информация о списке рассылки nginx-ru