Nginx

Nginx 禁用基本身份驗證 - Laravel Forge

  • January 18, 2022

在 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;
}

/hooks/stripe如果我更改為我的 CSS 或 favicon 等物理文件,上述方法可以正常工作。此外,反轉它沒有問題,我可以用密碼鎖定該路線。

我嘗試過使用 location 塊的變體,有些有=,有些沒有。此外,我嘗試auth_basic off;並刪除了allow all;. 最後,我嘗試使用不同的修飾符更改位置,使其不那麼具體,並將其放置在/根位置之前和之後try_files

任何幫助將不勝感激,因為我現在完全陷入困境

感謝@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;
}

引用自:https://serverfault.com/questions/1090332