Nginx 禁用基本身份验证 - Laravel Forge

Nginx 禁用基本身份验证 - Laravel Forge

在 Laravel Forge Nginx 服务器上,我已为我的网站在根级别启用了基本身份验证安全性,一切运行正常。

然而,我现在正尝试从基本身份验证中排除 webhook 路径,以允许该网站能够与第三方正常运作。

无论我如何尝试,它似乎都不起作用,如果文件夹/文件存在于文件系统中,它可以正常工作,但对于在 Laravel 中设置为路由的漂亮 URL,它则不行。

这是我的 nginx 配置文件的摘录:

auth_basic "Restricted Area";
auth_basic_user_file /etc/nginx/forge-conf/mywebsite/server/.htpasswd;

location = /hooks/stripe {  
    auth_basic "off";
    allow all;
}

location / {
    try_files $uri $uri/ /index.php?$query_string;
}

如果我更改为物理文件(例如 CSS 或图标),上述操作可以正常工作/hooks/stripe。此外,反转操作也可以正常工作,我可以用密码锁定该路由。

我尝试过使用位置块的变体,有些有=,有些没有。此外,我还尝试过auth_basic off;删除allow all;。最后,我尝试使用不同的修饰符更改位置,使其不那么具体,并将其放在/根位置之前和之后try_files

任何帮助都会非常感激,因为我现在完全陷入困境

答案1

谢谢@AlexD下面评论中的建议是可行的,但是您必须移动锻造导入,这可能会产生意想不到的影响。

如果您尝试访问不存在的 URL,/hooks/lost您仍然会收到基本身份验证请求,我不确定为什么,但目前这解决了眼前的问题。

# FORGE CONFIG (DO NOT REMOVE!)
#include forge-conf/mywebsite/server/*;

location / {
    try_files $uri $uri/ /index.php?$query_string;
    include forge-conf/mywebsite/server/*;
}

location /hooks {  
    auth_basic off;
}

相关内容