http {
รวม mime.types;
แอปพลิเคชัน default_type/octet-stream;
เซิร์ฟเวอร์ {
รูท / เว็บไซต์;
ฟัง 80;
server_name localhost;
#ไม่ทำงาน
try_files /logo.png /logo.jpg /ข้อผิดพลาด;
#ได้ผล
เขียนใหม่ ^/e /ข้อผิดพลาด;
#ได้ผล
# return 200 "$request_uri จัดการโดยเซิร์ฟเวอร์บล็อก";
ที่ตั้ง / {
default_type ข้อความ/ธรรมดา;
กลับ 200 "จับคู่คำนำหน้าราก";
}
ตำแหน่ง / ข้อผิดพลาด {
default_type ข้อความ/ธรรมดา;
กลับ 404 "ไม่พบโลโก้";
}
}
ฉันต้องการทราบว่าอะไรคือสาเหตุของการประเมินนี้ ฉันไม่พบคำอธิบายที่เชื่อถือได้ทั้งในเอกสารหรือในฟอรัม
โดยวิธีที่ฉันได้ทดลองสถานการณ์ต่อไปนี้:
- ลบตำแหน่ง / {} บล็อกและทำงานได้ตามที่ตั้งใจไว้ ฉันรู้แล้ว
เมื่อส่งคำขอไปยังเซิร์ฟเวอร์ ระบบจะทำการประเมินเซิร์ฟเวอร์ก่อน
บล็อกแล้วบล็อกตำแหน่งที่ตรงกัน แต่ดูเหมือนว่า
try_files
คำสั่งถูกละเว้น (ทำไม?!!) ถ้าฉันแก้ไขอาร์กิวเมนต์สุดท้ายของ
try_files
คำสั่งเขียน URI ใหม่ดังนั้นควรทำงานเหมือนเขียนใหม่
คำสั่ง ทั้งคำสั่งการเขียนซ้ำและการส่งคืนทำงานได้ตามที่ตั้งใจไว้
พวกเขาประเมินทุกครั้งไม่ว่าจะมีสถานที่หรือไม่
บล็อกการแข่งขันหรือไม่
ฉันค้นคว้ามากมายเพื่อหาข้อมูลที่เชื่อถือได้ซึ่งอธิบายสถานการณ์นี้ แต่ไม่พบ ดังนั้นฉันจึงขอคำตอบหรือแหล่งที่มาเกี่ยวกับ Nginx จากคนที่รู้