将PHP位置放入NGINX中的2个代理中,用于auto_prepend_file

时间:2018-12-20 17:38:13

标签: php nginx-location

server {
        listen 443 ssl;
        listen [::]:443 ssl;

        root /var/www/html;

        index index.php index.html index.htm;

        server_name my.domain.com;

        location / {
            try_files $uri $uri/ @phpnoauth;

        }

        location /authenticate {
            try_files $uri $uri/ @phpnoauth;
        }

        location /dev {
            try_files $uri $uri/ @phpauth;
        }       

        location ~ \.php$ {
            include /etc/nginx/sites-available/default-include;
            fastcgi_param PHP_VALUE "auto_prepend_file=/var/www/html/authenticate/index.php";
        }

        location @phpnoauth {
            include /etc/nginx/sites-available/default-include;
        }

        location @phpauth {
            include /etc/nginx/sites-available/default-include;
            fastcgi_param PHP_VALUE "auto_prepend_file=/var/www/html/authenticate/index.php";
        }       

        location ~ /\.ht {
            deny all;
        }
}

我正在尝试简化配置。 我有多个目录,其中一些目录需要通过此行,因此NGINX会将身份验证系统加载到页面中:

fastcgi_param PHP_VALUE "auto_prepend_file=/var/www/html/authenticate/index.php";

其中一些不需要该身份验证系统。 我以为我会创建2个不同的PHP位置部分。一种带有身份验证,一种不带有身份验证。然后,我将目录指向所需的目录。

除非我在配置中有此文件,否则它只会尝试将其下载为PHP文件:

    location ~ \.php$ {
        include /etc/nginx/sites-available/default-include;
        fastcgi_param PHP_VALUE "auto_prepend_file=/var/www/html/authenticate/index.php";
    }

我不确定如何使它工作。我尝试修改所有内容已有几个小时,但运气不佳。有什么帮助吗?谢谢!

0 个答案:

没有答案