nginx ตรวจจับตำแหน่งอื่น ๆ ทั้งหมดที่ระบุ


19

ฉันมีที่ตั้งบางแห่งบนเซิร์ฟเวอร์ของฉัน ฉันต้องการจับตำแหน่งอื่นทั้งหมดที่ผู้ใช้ให้ผ่านเบราว์เซอร์ ทำอย่างไรถึงจะได้? ตัวอย่างเช่น

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

คำตอบ:


31

ตำแหน่งของ nginx นั้นขึ้นอยู่กับคำนำหน้า (ยกเว้นตำแหน่ง regexp) ดังนั้นจึงlocation /จับคู่คำขอทั้งหมดยกเว้นว่าจะมีการจับคู่ที่เฉพาะเจาะจงมากขึ้น

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

    location /location1 {
        # do something
    }

    location /location2 {
        # do domething
    }
}

1
ถ้าคุณต้องการ/จับคู่สิ่งที่เฉพาะเจาะจงแล้วทุกอย่างอื่นจะถูกจับโดยอย่างอื่น? คุณจะใช้การจับคู่สัญลักษณ์แทนหรือไม่
Tim Tisdall

3
อ่า .. ฉันคิดว่ามันน่าจะlocation = /ใช้ได้ /คำขอที่ชัดเจนจะถูกจับคู่และทุกสิ่งจะไปถึงlocation /เว้นแต่จะมีสิ่งอื่นตรงกัน
Tim Tisdall
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.