在停用未綁定網域名稱和ip直接存取nginx時,我建立如下server
server {
listen 80 default;
server_name _;
fastcgi_intercept_errors on;
error_page 404 /data/www/error_page/404.html;
return 404;
}
error_page 內容如下:
404 Not Found!
nginx -t 測試通過 nginx -s reload 重新載入成功 為何返回的依舊是nginx自帶的404頁呢? 查過手冊確是如此設定404頁面的~
为情所困2017-05-16 17:31:04
error_page的第二個參數是URI, 即相對於站點根目錄的路徑,並非實體路徑
依你的需求,建議改為:
root /data/www;
error_page 404 /error_page/404.html;
淡淡烟草味2017-05-16 17:31:04
多謝精英王子,我又重新閱讀了一下nginx wiki裡關於error_page的說明。裡面確是指出404的context是uri,我重新為default配置了root,然後指明了其404的相對路徑。但出現問題是造訪某未綁定網域名稱(如cc.com),回傳的是nginx自帶的404頁面,造訪cc.com/aaa.html回傳的是自訂的404頁面。額外指定index到404.html才完全生效。 另外,用location 將/定義為internal限制也可以回傳404.