Reguła przepisywania Nginx w celu usunięcia węzła ścieżki

20

Załóżmy, że użytkownik próbuje uzyskać dostęp do danego obrazu w mojej witrynie przy użyciu następującego adresu URL: http://www.mywebsite.com/blog/image1.jpg?someParam=100

potrzebuję do tego przepisać regułę, usuwając węzeł „blog” ze ścieżki:

http://www.mywebsite.com/image1.jpg?someParam=100

marcosbeirigo
źródło

Odpowiedzi:

27

Spróbuj tego:

location /blog {
 rewrite ^/blog(/.*)$ $1 last;
}

Jeśli potrzebujesz tego dla więcej niż jednej witryny, nie możesz po prostu ustawić go wyżej w hierarchii, ponieważ klauzula „lokalizacja” nie może być określona globalnie, tylko dla konkretnej witryny. Jeśli musisz dodać tę klauzulę dla dwóch lub więcej witryn, możesz umieścić inny plik konfiguracyjny, a następnie po prostu „dołączyć” go do każdej witryny, która wymaga tego przekierowania.

kworr
źródło
Działa to na tym samym serwerze. Jak sprawić, by działał w innej domenie?
Autodidact
1
Wystarczy dołączyć nową domenę w ramach przepisywania: rewrite ^/blog(/.*)$ https://blog.example.com$1 permanent;
Christophe