Назад | Перейти на главную страницу

регулярное выражение nginx с ошибкой захвата

Я пытаюсь использовать функции захвата регулярных выражений для создания Access-Control-Origin header.

Итак, у вас есть два основных захвата, один для адреса веб-сайта (например,http://example.com) и другой для пользователя порта (например, :4200).

Идея состоит в следующем заголовке: Origin: http://example.com:4200

Мой захват работает для первого случая, но порт мне не нравится.

я получил Origin : http://example.com: вместо того Origin: http://example.com:4200

Вот моя конфигурация nginx:

Я предполагаю, что Access-Control-Allow-Origin не понимайте числовое значение.

    if ($request_uri ~ ^/api/blabla/*){
          set $public "1";
    }

    if ($http_origin ~* (https?:\/\/[^/]*(localhost|\.example.com))(:[0-9]+)?[^\w\d]) {
         set $public "${public}1";
    } 
    if ($public = "11"){
         set $http_origin_regex $1$4;
         add_header 'Access-Control-Allow-Origin' "$http_origin_regex";
    }

смотреть на http://marcel.zurreck.com/enable-cross-origin-requests-cors-nginx/

используя их синтаксис, я получил:

location ~ ^/api/blabla/ {
    if ($http_origin ~* (https?://[^/]*(localhost|\.example\.com)(:[0-9]+)?)) {
        add_header 'Access-Control-Allow-Origin' "$http_origin";
    }
}