Nginx + PHP(在fastCGI上)对我很好。当我输入一个不存在的PHP文件的路径时,我只是得到一个“没有指定输入文件”,而不是获得默认的404错误页面(对于任何无效的.html文件)。Nginx - 自定义404页面
我如何定制这个404错误页面?
Nginx + PHP(在fastCGI上)对我很好。当我输入一个不存在的PHP文件的路径时,我只是得到一个“没有指定输入文件”,而不是获得默认的404错误页面(对于任何无效的.html文件)。Nginx - 自定义404页面
我如何定制这个404错误页面?
您可以使用nginx config中的error_page属性。
例如,如果你打算到404错误页面设置为/404.html
,使用
error_page 404 /404.html;
500错误页面设置为/500.html
是一样简单:
error_page 500 /500.html;
你可以设置nginx.conf中每个位置块的自定义错误页面,或整个网站的全局错误页面。
重定向到一个简单的404页面未找到某个具体位置:
location /my_blog {
error_page 404 /blog_article_not_found.html;
}
站点宽404页:
server {
listen 80;
error_page 404 /website_page_not_found.html;
...
您可以附加标准错误代码在一起有一个单页对于几种类型的错误:
location /my_blog {
error_page 500 502 503 504 /server_error.html
}
要重定向到一个完全不同的服务器, g您必须在您的HTTP部分定义为上游服务器名为server2:
upstream server2 {
server 10.0.0.1:80;
}
server {
location /my_blog {
error_page 404 @try_server2;
}
location @try_server2 {
proxy_pass http://server2;
}
的manual可以给你更多的细节,也可以搜索谷歌的条款nginx.conf和error_page在网络上的真实例子。
您是否知道是否可以使用错误通配符?像`error_page 50 * = /error_50x.html;`? – 2012-11-27 01:58:23
不允许使用通配符 - 此服务器命令的wiki页面在这里http://wiki.nginx.org/NginxHttpCoreModule#error_page - 也不是必需的,因为错误代码是由不改变的HTTP协议定义的常常。请参阅http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html或http://en.wikipedia.org/wiki/List_of_HTTP_status_codes查看完整列表,如果您认为那里有任何数字,我想可以添加任何数字将是未来需要的代码。 – 2012-11-27 17:17:49
“error_page”参数不够。
最简单的解决方法是
server{ root /var/www/html; location ~ \.php { if (!-f $document_root/$fastcgi_script_name){ return 404; } fastcgi_pass 127.0.0.1:9000; include fastcgi_params.default; fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name; }
顺便说一句,如果你想Nginx的处理由PHP脚本返回404种状态,你需要在添加
例如,
location ~ \.php { #... error_page 404 404.html; fastcgi_intercept_errors on; }
不再推荐使用这些答案,因为try_files
工作速度比在这方面if
。只需在你的PHP所在地块添加try_files
测试文件是否存在,否则返回一个404
location ~ \.php {
try_files $uri =404;
...
}
要注意语法!大龟用他们互换,但:
error_page 404 = /404.html;
将与200状态码返回404.html页面(因为=未转述,此页)
error_page 404 /404.html;
威尔用(原始的)404错误代码返回404.html页面。
https://serverfault.com/questions/295789/nginx-return-correct-headers-with-custom-error-documents
虽然链接是OK和答案微创作品,未经环节,它可以受益于更多的阐述。 – Paul 2015-08-10 00:38:50
@Paul I 100%对此表示赞同,因此我在此答案中添加了一些代码示例;-) – 2015-10-18 14:32:56