我有auth_basic
保護我的網站的一部分:自定義401頁不提示輸入憑據nginx的
location/{
auth_basic "Authorization Required";
auth_basic_user_file .htpasswd;
index app.php;
try_files $uri @rewriteapp;
}
對於未經授權的用戶(那些誰點擊「取消」),我想顯示自定義錯誤頁面。以下是我已經做到了:
error_page 401 = @error401;
location @error401 {
rewrite^/error/401.html redirect;
}
location /error {
expires max;
add_header Pragma public;
add_header Cache-Control "public";
index app.php;
try_files $uri @rewriteapp;
}
我不得不創建@ error401別名,所以我可以指定「重定向」,因爲如果我使用內部重定向,我的應用程序將處理的原始請求(和給訪問到實際請求的頁面!)
所以這工作正常,頁面顯示。 問題是,現在nginx甚至不會要求用戶提供憑據。
有什麼辦法解決這個問題嗎?或者有更好的方法來處理這個問題?
謝謝,你的回答需要一些定製,因爲它需要服務的PHP文件和不是一個靜態的,但我會嘗試如果我能適應它。 – Julien
@Julien您是否找到了重定向問題的解決方案?錯誤子句/重定向只是簡單地忽略認證並且首先重寫 – vongolashu