2013-09-04 35 views
7

Tôi đang cố gắng đối sánh /category/anything, ngoại trừ /category/paid ở vị trí nginx.lookahead regex ở vị trí nginx

Tôi có regex sau, nhưng nó không hoạt động. Google nói với tôi rằng tôi có thể sử dụng lookahead trong nginx. Tôi có làm điều gì sai?

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

} 

Trả lời

5

Bạn cần dấu gạch chéo trước dấu gạch chéo hoặc dấu gạch chéo thoát.

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

Đó chính xác là những gì tôi đang tìm kiếm! Cảm ơn! thêm một câu hỏi ... trông giống như regex của tôi không phù hợp với/thể loại/trả tiền thử nghiệm. Tôi đã thêm $ vào cuối, nhưng nó vẫn không khớp. Bạn còn ý kiến ​​nào không? – Moon

+1

Có thể một cái gì đó như 'loại/(?: trả tiền (? = -) | (?! Trả tiền))' – hwnd

+1

Tôi không hiểu sự khác biệt giữa '^/category (?!/Paid) /' và '(danh mục/(?! trả tiền)) 'cả hai phải tương đương và làm việc cho ví dụ (match/category/anything, except/category/paid). Tôi đang thiếu gì ở đó? – Freefri

Các vấn đề liên quan