Назад | Перейти на главную страницу

Перенаправить 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 на страницу индекса со статусом ОК.

error_page 404 =200 /index.html

Можно ли сделать этот каталог специально?

Как и в первом комментарии, error_page может быть определен на уровне местоположения.

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

Старый ответ или другой способ добиться этого: вам нужно использовать try_files для этот. Название очевидно. Nginx пытается открыть по заданному пути, если он существует. если не может найти, пробует следующее. Итак, ваше правило должно выглядеть так.