我正在运行nginx服务器。我想仅为特定请求提供自定义错误页面。例如,请求
http://localhost/abc1 & http://localhost/abc2
如果这些页面不存在,我想提供自定义错误页面。此自定义错误页面应仅针对上述两个链接出现,其余页面错误可显示默认错误页面。我尝试了不同的配置,但似乎没有任何工作。思想
此致 Farrukh Arshad。
答案 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大师可以对此有所了解。感谢。