2013-09-04 14 views
7

Próbuję dopasować /kategorię/dowolną wartość, z wyjątkiem /category/paid w lokalizacji nginx.Wczytaj ponownie w lokalizacji nginx

Mam następujące wyrażenie regularne, ale nie działa. Google mówi mi, że mogę używać wyprzedzania w nginx. czy robię coś źle?

location ^/category(?!/paid)/ { 

} 

Odpowiedz

5

Musisz albo ukośnik przed nim, albo po ucieczce ukośnika.

location ~ (category/(?!paid)) { .. } 
location ~ (category\/(?!paid)) { .. } 
+0

Tego właśnie szukałem! Dzięki! jeszcze jedno pytanie .. wygląda na to, że moje wyrażenie regularne nie pasuje do/kategorii/testu płatnego. Dodałem $ na końcu, ale nadal nie pasuje. Masz jakiś pomysł? – Moon

+1

Może coś takiego jak "category/(?: paid: (? = -) | (?! Paid))' – hwnd

+1

Nie rozumiem, jaka jest różnica między '^/category (?!/Paid) /' i '(category/(?! paid)) "oba powinny być równoważne i pracować na przykład (mecz/kategoria/cokolwiek, z wyjątkiem/kategorii/płatne). Czego tu mi brakuje? – Freefri