2014-10-27 17 views

Trả lời

5

Từ nginx docs:

Vị trí có thể được xác định bằng chuỗi tiền tố hoặc theo cụm từ thông dụng. Các biểu thức chính quy được chỉ định với công cụ sửa đổi “~ *” trước đó (đối với đối sánh không phân biệt chữ hoa chữ thường) hoặc công cụ sửa đổi “~” (đối với trường hợp trùng khớp phân biệt chữ hoa chữ thường).

Vì vậy, ~* ở vị trí phải được sử dụng cho trường hợp không khớp.

location ~* /something/ { 
    # your code here 
} 
+1

Nó không còn là một * * pre ** sửa chuỗi nếu bạn sử dụng regex. Đảm bảo bạn thực hiện 'location ~ * ^/something /' để chỉ khớp từ đầu. –

10

Tôi giả định rằng http://example.com/something sẽ không được chuyển hướng. Vì vậy, sử dụng vị trí tiền tố cho các trận đấu nhạy cảm xảy ra với các modifier ^~ để bỏ qua việc kiểm tra biểu thức thông thường:

location ^~ /something { 
    return 200 "case sensitive something match 
"; 
} 

Bây giờ thêm trường hợp không nhạy cảm vị trí biểu thức chính quy để chuyển hướng:

location ~* ^/something { 
    return 301 $scheme://$host/something; 
} 
+0

Cảm ơn bạn đã dùng bit cuối cùng với dấu mũ. Đó là chính xác những gì tôi cần. –

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