Nginx能否配置一条404页面对应多个域名?

hanyouqing
  • 778

如题:

nginx中就一个server,所有的域名配置都一样,通过程序区分,每个域名都是一个独立的站点,想让每个域名404时都显示自己对应的404页面,nginx下不知如何配置实现

server {
    ...
    server_name a.com b.cn d.org ....; # 配置了很多域名
    ...
    
    error_page 404 /404.html;
}
回复
阅读 4k
2 个回答

你把下面这个挪到http作用域里面就行了, 不要每个server里面都写一个
error_page 404 /404.html;

遇到这种问题,你应该去看文档:
Syntax: error_page code ... [=[response]] uri;
Default: —
Context: http, server, location, if in location

context表示这个error_page语法的作用域, 说明可以放到http里面。

试试map

//context http

map $http_host $page {
    default  404.html;
    .com   404.com.html;
    .cn 404.cn.html;

}

//context server

error_page $page;
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏