首頁  >  問答  >  主體

server - nginx error_page 404 未生效

在停用未綁定網域名稱和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頁面的~

PHP中文网PHP中文网2712 天前588

全部回覆(2)我來回復

  • 为情所困

    为情所困2017-05-16 17:31:04

    error_page的第二個參數是URI, 即相對於站點根目錄的路徑,並非實體路徑

    依你的需求,建議改為:

    root  /data/www;
    error_page 404 /error_page/404.html;
    

    回覆
    0
  • 淡淡烟草味

    淡淡烟草味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.

    回覆
    0
  • 取消回覆