ฉันมีการกำหนดค่าต่อไปนี้ใน nginx สำหรับการเปลี่ยนเส้นทางในบางสถานการณ์
ตำแหน่ง / คำนำหน้า-someurl {
ถ้า (เงื่อนไข) {
ส่งคืน 301 $scheme://$host/xyz.html;
}
proxy_pass someValue;
}
และในบล็อกอื่นมีกฎการเขียนใหม่เช่นนี้
ที่ตั้ง /someurl {
ถ้า (เงื่อนไข) {
เขียนใหม่ ^(.*)abc(.*)$ $1test/abc$2 break;
เขียนใหม่ ^(.*)someurl/$(.*) $1someurl/test/index.html$2;
}
ค่า proxy_pass;
}
การกำหนดค่าด้านบนทำงานได้ตามที่ตั้งใจไว้ อย่างไรก็ตามหากเป็นอย่างหลังฉันทำการแก้ไขนี้
ที่ตั้ง /someurl {
ถ้า (เงื่อนไข) {
ส่งคืน 301 $scheme://$host/xyz.html;
}
ถ้า (เงื่อนไข) {
เขียนใหม่ ^(.*)abc(.*)$ $1test/abc$2 break;
เขียนใหม่ ^(.*)someurl/$(.*) $1someurl/test/index.html$2;
}
ค่า proxy_pass;
}
ฉันได้รับข้อผิดพลาดในการเปลี่ยนเส้นทางมากเกินไปสำหรับการเข้าถึง /คำนำหน้า-someurl
. ถ้าฉันแก้ไขไฟล์ /โซเมอร์ล
ข้อผิดพลาดต่อไปนี้หายไป;
ที่ตั้ง /someurl {
ถ้า (เงื่อนไข) {
ส่งคืน 301 $scheme://$host/xyz.html;
}
ค่า proxy_pass;
}
ฉันไม่เข้าใจว่าทำไมต้องแก้ไข /โซเมอร์ล
มีผลกระทบต่อ /คำนำหน้า-someurl
. หรือฉันพลาดบางอย่างเกี่ยวกับการประเมิน nginx rewrite ข้อมูลเชิงลึกเกี่ยวกับเรื่องนี้จะได้รับการชื่นชม