nginx bắt tất cả các địa điểm khác ngoài cho


19

Tôi có một số vị trí trên máy chủ của tôi. Tôi muốn nắm bắt tất cả các địa điểm khác mà người dùng cung cấp thông qua trình duyệt. Làm thế nào để điều đó? Ví dụ

 server {
     ...
     location /location1 {
              do something;
     }
     location /location2 {
              do something;
     }
     location /all_other_locations {
            return 301 http://www.google.de
     }

Câu trả lời:


31

Các vị trí của nginx dựa trên tiền tố (ngoại trừ các vị trí regrec), do đó location /khớp với tất cả các yêu cầu trừ khi một kết quả cụ thể hơn khớp.

server {
    location / {
        # catch all unless more specific location match
    }

    location /location1 {
        # do something
    }

    location /location2 {
        # do domething
    }
}

1
Điều gì sẽ xảy ra nếu bạn muốn /kết hợp một cái gì đó cụ thể và sau đó mọi thứ khác bị bắt bởi một thứ khác? Bạn sẽ sử dụng kết hợp ký tự đại diện sau đó?
Tim Tonomall

3
ah .. tôi nghĩ rằng nó có thể được sử dụng location = /. /Yêu cầu rõ ràng sẽ được khớp bởi nó và mọi thứ khác sẽ đi đến location /trừ khi có thứ khác khớp.
Tim Tonomall
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.