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";
}
我不确定如何使它工作。我尝试修改所有内容已有几个小时,但运气不佳。有什么帮助吗?谢谢!