Исключить API-маршрут из Nginx HTTP Basi c Аутентификация - PullRequest
0 голосов
/ 27 марта 2020

Я пытаюсь исключить маршрут API "https://example.com/api/" из Nginx HTTP Basi c Аутентификация.

Вот мой Nginx Conf:

server {
    listen 80;
    listen [::]:80;
    server_name example.com;
    return 302 https://$server_name$request_uri;
}

server {

    # SSL configuration

    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    ssl_certificate         /etc/nginx/ssl/cert.crt;
    ssl_certificate_key     /etc/nginx/ssl/key.pem;
    ssl_client_certificate  /etc/nginx/ssl/cloudflare.crt;
    ssl_verify_client on;

    server_name example.com;
    root /var/www/mysite;

    index app.php index.php;

    location / {
        try_files $uri $uri/ /app.php$is_args$args;

        # Restricting Access
        auth_basic 'Administrator Area';
        auth_basic_user_file /etc/apache2/.htpasswd;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
    }

    # Restriction off for api
    location ^~ /api/ {        
        auth_basic off;
        allow all;
    }

}

Но когда я пытаюсь нажать "https://example.com/api/" в браузере, он все еще запрашивает базовую c аутентификацию. Обычно, без базовой аутентификации c, он должен предоставить браузеру ответ JSON.

Кто-нибудь знает, как решить эту проблему? Любая помощь будет принята с благодарностью. Спасибо.

...