我想通過一個參數,當我使用'error_page'指令Nginx配置文件,如下所示。Nginx error_page指令:我可以傳遞參數嗎?
我想讓'err.html'使用JavaScript處理響應狀態碼。但是,下面根本不起作用。
error_page
400 401 402 403 404 500 502 503 504 = /err.html?$status;
當我使用'error_page'指令時,有任何其他方式來傳遞響應狀態碼(或其他參數)嗎?
我想通過一個參數,當我使用'error_page'指令Nginx配置文件,如下所示。Nginx error_page指令:我可以傳遞參數嗎?
我想讓'err.html'使用JavaScript處理響應狀態碼。但是,下面根本不起作用。
error_page
400 401 402 403 404 500 502 503 504 = /err.html?$status;
當我使用'error_page'指令時,有任何其他方式來傳遞響應狀態碼(或其他參數)嗎?
我認爲這是一個錯誤的概念。出錯時,使用error_page,nginx不會返回url,而是執行內部重定向,併發送和備用響應。
爲了實現這一目標,目前我能想到的兩種方式,
多個error_pages對於不同的錯誤代碼,並預先代碼 的JavaScript到這些頁面。
error_page 404 err404.html;
error_page 403 err403.html;
...
這似乎有點漫長。
error_page 404 405 .../custom_error $ status;
location ~ /custom_error(.*) {
add_header Error-Code $1;
try_files /err.html.html 404;
}
P.S.請檢查語法錯誤,以上代碼未經測試。
(我改寫了這個答案)
的問題是內部重定向和外部重定向因我的困惑。以下運作良好。 (假設「err.php」正確處理查詢字符串)
error_page 400 401 402 403 404 500 502 503 504 /err.php?$status;
如果我想客戶端的JavaScript來處理通過查詢字符串傳遞響應狀態代碼,我應該嘗試另一種方式,作爲Satys說。我可以找到一種方法。
error_page 400 402 403 404 500 502 503 504 @err;
location @err {
rewrite ^.*$ /err.html?$status redirect;
}
謝謝您的建議,Satys。
http://nginx.org/en/docs/http/ngx_http_core_module.html#error_page「一個uri值可以包含變量。」 –