Nginx 404 a 301 redirigir en base a URI

Estoy tratando de crear una redirección múltiple de 404 en WordPress, y actualmente estoy usando esto:

error_page 404 @foobar; location @foobar { rewrite .* / permanent; } 

Sé que esto está destinado a redirigir a la página de inicio, pero este método no funciona en absoluto , ya que se usa el archivo WordPress 404.php normal que se incluye con el tema. Está bien, pero necesito que la redirección funcione a través de Nginx en lugar de WP porque necesito crear redirecciones diferentes una vez que una página ha sido declarada como 404.

Ejemplo: Supongamos que tengo alrededor de 10 categorías en mi sitio WP. Tengo publicaciones que van y vienen, y una vez que una publicación se ha ido, me gustaría redirigir esa publicación (porque cada publicación en una categoría determinada tiene un identificador único) a la categoría base.

Ejemplo: redirigir una publicación no existente

 /i-love-soup-cause-it-tastes-so-good-campbellssoup ---> /category/campbellssoup 

o

/toystory-3-is-a-great-movie-coolmovies ---> /category/coolmovies

Básicamente, necesito crear redireccionamientos múltiples a varias ubicaciones ÚNICAMENTE DESPUÉS de que se haya establecido el URI como 404. ¿Alguna idea?

Editar:

Ok, usando

 fastcgi_intercept_errors on; 

Logré eliminar los errores virtuales de wordpress. Ahora tengo el redireccionamiento a @foobar funcionando, pero no puedo hacer que los uri se transfieran al bloque de ubicación @foobar . Supongo que tiene algo que ver con mis try_files en mi / bloque de ubicación.

 location / { #try_files $uri $uri/ /index.php?q=$request_uri; try_files $uri $uri/ /index.php?$args; } 

Primero hay un error de syntax en su configuración, debe ser error_page 404 = @fallback . Esto debería funcionar bien, pero solo si wordpress está generando un 404. Creo que está incluyendo algo así como 404.php. Tampoco estoy seguro si puede cambiar el código de estado dentro de una ubicación determinada. La documentación indica explícitamente que se puede usar una ubicación de respaldo, en el caso en que no sea necesario cambiar el URI y proporciona el cambio de la URL con una syntax diferente que no le sirve. Primero averiguaría si WordPress está manejando el 404 por sí mismo. Si ese es el caso, maneje la redirección en ese archivo. Si no es así, simplemente crea tu propia página que maneje la redirección en el lenguaje de scripting con el que te sientas cómodo. Si puede hacer reescrituras en ubicaciones con nombre para páginas de error, entonces la parte inferior de la solución @tcurvelo debería funcionar.