将特定目录内的 404 重定向到 index.php

将特定目录内的 404 重定向到 index.php

我正在尝试将所有 404 消息重定向到索引页,但仅限于某些目录/类别内。

例如

以下目录中的 404 将正常显示

www.foo.com/

www.foo.com/blah

以下目录中的 404 将重定向到 index.php

www.foo.com/bar

www.foo.com/fizz/buzz

到目前为止,我发现以下操作会将所有 404 重定向到具有 OK 状态的索引页。

error_page 404 =200 /index.html

是否可以指定该目录?

答案1

正如第一条评论所述,error_page可以在位置级别进行定义。

location ^~ /baz {
    error_page /index.html;
}

旧答案或实现此目的的另一种方法:您需要使用try_files为了。名称很明显。如果存在,Nginx 会尝试打开给定的路径。如果找不到,它会尝试下一个。所以你的规则应该是这样的。

相关内容