Pregunta:
Estoy seguro de que esto se ha preguntado antes, pero no puedo encontrar una solución que funcione.
Un sitio web ha cambiado los servicios CMS, pero tiene el mismo dominio, ¿cómo configuro una reescritura de nginx para una sola página?
P.ej
Página antigua
http://sitedomain.co.uk/content/unique-page-name
Nueva pagina
http://sitedomain.co.uk/new-name/unique-page-name
Tenga en cuenta que no quiero que todo dentro de la página de contenido sea redirigido, sino literalmente solo la URL mencionada anteriormente. Tengo alrededor de 9 redireccionamientos para configurar, ninguno de los cuales encaja en un patrón.
¡Gracias!
Editar: encontré esta solución, que parece estar funcionando, excepto por el hecho de que redirige sin una barra:
if ( $request_filename ~ content/unique-page-name/ ) {
rewrite ^ http://sitedomain.co.uk/new-name/unique-page-name/? permanent;
}
Pero esto redirige a:
http://sitedomain.co.uknew-name/unique-page-name/
Respuesta:
Cita directa de Escollos y errores comunes: impuestos reescribe :
Al usar la directiva de retorno, podemos evitar por completo la evaluación de expresiones regulares.
Utilice return
lugar de rewrite
para redireccionamientos permanentes. Aquí está mi enfoque para este caso de uso …
location = /content/unique-page-name {
return 301 /new-name/unique-page-name;
}