Jestem pewien, że już o to pytano, ale nie mogę znaleźć rozwiązania, które działa.
Witryna przełączyła usługi CMS, ale ma tę samą domenę, jak skonfigurować przepisywanie nginx dla pojedynczej strony?
Na przykład
Stara strona
http://sitedomain.co.uk/content/unique-page-name
Nowa strona
http://sitedomain.co.uk/new-name/unique-page-name
Uwaga : nie chcę przekierowywać wszystkiego na stronie treści, ale dosłownie tylko wspomniany adres URL. Mam do skonfigurowania około 9 przekierowań, z których żadne nie pasuje do wzorca.
Dzięki!
Edycja: Znalazłem to rozwiązanie, które wydaje się działać, z wyjątkiem tego, że przekierowuje bez ukośnika:
if ( $request_filename ~ content/unique-page-name/ ) {
rewrite ^ http://sitedomain.co.uk/new-name/unique-page-name/? permanent;
}
Ale to przekierowuje do:
http://sitedomain.co.uknew-name/unique-page-name/
if
instrukcji w Nginx jest złe? Czy nadal byłaby to lepsza praktyka niż stosowanie metody przepisywania?if
z dyrektywy dotyczącej zwrotu jest całkowicie w porządku. Zobacz wiki.nginx.org/IfIsEvil . Tak, IMO, to lepsze niż używanie przepisywania.Idealnie nie powinieneś używać instrukcji if, jeśli możesz tego uniknąć. Coś takiego może działać (niesprawdzone).
źródło
Użyłem następującego rozwiązania:
Działa uczta.
źródło
Dla mnie działało to bez znaku równości:
źródło
rewrite
. Zobacz odpowiedź @ SteveEdison.