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 de 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 el contenido de la página de contenido sea redirigido, pero literalmente solo la URL mencionada anteriormente. Tengo alrededor de 9 redireccionamientos para configurar, ninguno de los cuales se ajusta a 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/
if
declaraciones en nginx es malo? ¿Sería esto una mejor práctica que usar el método de reescritura?if
junto con la directiva de retorno está perfectamente bien. Ver wiki.nginx.org/IfIsEvil . Sí, en mi opinión, es mejor que usar reescribir.Idealmente, no deberías usar sentencias if si puedes evitarlo. Algo como esto podría funcionar (no probado).
fuente
Usé la siguiente solución:
Funciona de maravilla.
fuente
Para mí funcionó sin el signo igual como este:
fuente
rewrite
. Ver la respuesta de @ SteveEdison.