所有请求的nginx自定义错误页

所有请求的nginx自定义错误页,nginx,Nginx,我尝试为vhost中的所有请求提供自定义404, 尝试: 还尝试将文件放在webroot之外: server { ... root /var/www; error_page 404 /var/404.html; location / { return 404; } } 或 没有运气。。。。 有什么想法吗?比如@Richard Smith评论道: server { ... root /var/www; error_page 404 /

我尝试为vhost中的所有请求提供自定义404, 尝试:

还尝试将文件放在webroot之外:

server {
   ...
   root /var/www;
   error_page 404 /var/404.html;
   location / {
     return 404;
   }
}

没有运气。。。。
有什么想法吗?

比如@Richard Smith评论道:

server {
  ...
  root /var/www;     
  error_page 404 /404.html;  
  location / {     
    return 404;
  }
  location = /404.html {
    internal;
  }
}

工作

你收到了什么输出?如果您正在访问
http://www.example.com
,然后
返回404将重定向到
http://www.example.com/404.html
因此您需要处理该请求。请尝试添加
location=/404.html{internal;}
以便至少该URI不受您的
return
语句的影响。@RichardSmith:对不起,不起作用…默认的404显示您当前为所有URI返回404响应,包括URI/404.html,这就是您最初的尝试不起作用的原因。您需要决定将
404.html
文件放在何处,使用什么URI来引用它,并创建一个
位置
块来引用它(正如我在前面的评论中所建议的)。如果这些步骤中有任何一个错误,您将得到404响应(但原因不同)。“那你做错了什么?”理查德史密斯——是我的错。根文件夹错误。。。一切正常,就像你建议的那样
server {
   ...
   root /var/www;       
   location / {
     error_page 404 /var/404.html;
     return 404;
   }
}
server {
  ...
  root /var/www;     
  error_page 404 /404.html;  
  location / {     
    return 404;
  }
  location = /404.html {
    internal;
  }
}