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

Почему этот раздел местоположения nginx вызывает загрузку моего файла php?

Это моя базовая конфигурация для сайта WordPress.

server {
    root          /var/www/site;
    listen        *****;
    server_name   *****;
    include       basics.conf;
}

Как только я добавляю раздел местоположения для ограничения доступа к входу в WP, файл wp-login.php отправляется в браузер, а не выполняется как php. у меня есть

server {
    root          /var/www/site;
    listen        *****;
    server_name   *****;
    include       basics.conf;

    location ^~ /wp-login.php {
        auth_basic            "Restricted Area";
        auth_basic_user_file  /etc/nginx/.htpasswd;
    }
}

Я пробовал скопировать то, что есть в моем basics.conf после настроек auth_, но это тоже не помогло. Мое местоположение / также настраивается в моем basics.conf, потому что я использую его для всех сайтов php.

server {
    root          /var/www/site;
    listen        *****;
    server_name   *****;
    include       basics.conf;

    location ^~ /wp-login.php {
        auth_basic            "Restricted Area";
        auth_basic_user_file  /etc/nginx/.htpasswd;

        index index.html index.htm index.php;
        allow all;

        if (-f $request_filename) {
            break;
        }
        if (!-f $request_filename) {
            rewrite ^/(.+)$ /index.php last;
            break;
        }
    }
}

Это мой basics.conf

location / {
    index index.html index.htm index.php;
    allow all;

    if (-f $request_filename) {
        break;
    }
    if (!-f $request_filename) {
        rewrite ^/(.+)$ /index.php last;
        break;
    }
}
include php-fastcgi.conf;

Это мой php-fastcgi.conf

location ~ \.php$ {
    try_files  $uri =404;
    fastcgi_intercept_errors on;
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    include        fastcgi_params;
}

Итак, как я могу защитить мой логин с помощью аутентификации, сохраняя при этом его анализ как php вместо отправки в браузер?