条件,如果重写返回404状态,则返回另一页

时间:2018-07-27 08:07:20

标签: nginx

我对旧的未使用的子域进行了重写,其中90%的URL既与主域相对应,又与子域相对应,但是某些url对于子域是唯一的。

如何创建条件,如果重写返回404,则返回自定义页面。

if ($host ~* (sub1|sub2|sub3)\.mysite\.loc) {
  rewrite ^(.+)$ http://mysite.loc$1 permanent;
  location / {
    error_page 404 =301 http://mysite.loc/lost-sub;
  }
}

1 个答案:

答案 0 :(得分:0)

您可以使用try_files,例如:

location / {
   try_files $uri @failover;
}

location @failover {
   proxy_pass http://failover;
}

在这种情况下,如果找不到文件而不是返回404,它将尝试location @failover