2010-02-04 29 views
12

Tôi đang thiết lập nginx và tôi cần sử dụng chỉ thị vị trí để khớp với tất cả các yêu cầu bắt đầu bằng /site1 VÀ kết thúc bằng .php. Tôi dùng regex để làm điều này?nginx location regex

Tôi biết tôi có thể sử dụng^để khớp đầu chuỗi và $ để khớp với phần cuối của chuỗi. Vì vậy, tôi có thể phù hợp với sự bắt đầu của chuỗi HOẶC kết thúc của chuỗi là ^(/site)|(\.php)$. Có bất kỳ toán tử 'và' nào để tôi có thể viết một cái gì đó như ^(/site)&(\.php)$ không?

Trả lời

17

Bạn muốn điều này: ^(/site).*(\.php)$. Điều này có nghĩa là trước tiên bạn khớp với phần bắt đầu theo sau là "/ site", sau đó bất kỳ số nào bất kỳ lúc nào và cuối cùng là ".php", sau đó là phần cuối của chuỗi. Nếu bạn không cần chụp, nó sẽ đơn giản như sau: ^/site.*\.php$.