nginx中有多个404错误页面

时间:2013-10-29 19:48:29

标签: nginx

我正在运行nginx服务器。我想仅为特定请求提供自定义错误页面。例如,请求

http://localhost/abc1 & http://localhost/abc2

如果这些页面不存在,我想提供自定义错误页面。此自定义错误页面应仅针对上述两个链接出现,其余页面错误可显示默认错误页面。我尝试了不同的配置,但似乎没有任何工作。思想

此致 Farrukh Arshad。

2 个答案:

答案 0 :(得分:3)

你的答案是完全正确的,但正如你所说,你只为html定义它们,删除扩展名它应该适用于整个目录,不需要重复根,只需在服务器块范围中定义< / p>

server {
    listen 80;
    root   /var/www/nginx-default;

    location /abc1 {        
        error_page 404 /special_error.html;
    }

    location /abc2 {
        error_page 404 /special_error2.html;
    }
}

答案 1 :(得分:2)

好的,我找到了答案。诀窍是你必须为所有这些特殊位置明确定义error_page。这是适合我的配置。

location / {
    root   /var/www/nginx-default;
    index  index.html index.htm;
    error_page 404 /404.html;
}

location /abc1.html {
    root   /var/www/nginx-default;
    error_page 404 /special_error.html;
}
location /abc2.html {
    root   /var/www/nginx-default;
    error_page 404 /special_error2.html;
}

我对nginx并不擅长,但我注意到它取决于你在“location”标签中提供的搜索模式。我尝试过不同的东西而那些失败了。例如,上述规则仅适用于

http://localhost/abc1.html 

并且

失败
http://localhost/abc1 

因此,如果您想要涵盖第二种情况,那么您的“位置”搜索模式应该是好的。可能一些nginx大师可以对此有所了解。感谢。