ฉันมีการเขียนซ้ำในไฟล์ ngix conf ของฉันที่ทำงานได้อย่างถูกต้องยกเว้นดูเหมือนว่าจะรวมบล็อกที่ตั้งเป็นส่วนหนึ่งของตัวแปร $ uri ฉันต้องการเส้นทางหลังจากบล็อกตำแหน่งเท่านั้น รหัสการกำหนดค่าปัจจุบันของฉันคือ:
location /cargo {
try_files $uri $uri/ /cargo/index.php?_REWRITE_COMMAND=$uri&args;
}
การใช้ URL ตัวอย่างของhttp://localhost/cargo/testpage
การเปลี่ยนเส้นทางทำงานอย่างไรก็ตามค่าของพารามิเตอร์ "_REWRITE_COMMAND" ที่ได้รับจากไฟล์ php ของฉันคือ "/ cargo / testpage" ฉันต้องถอดบล็อกที่ตั้งออกและมี "testpage" เป็น $ uri
ฉันค่อนข้างมั่นใจว่ามีไวยากรณ์ของ regex เพื่อแยก $ uri และกำหนดให้กับตัวแปรใหม่โดยใช้ $ 1 $ 2 ฯลฯ แต่ฉันไม่พบตัวอย่างใด ๆ ที่จะทำเพียงแค่การกำหนดตัวแปรโดยใช้ regex ที่ไม่ได้เป็นส่วนหนึ่งของการเขียนซ้ำ คำให้การ. ฉันค้นหามาหลายชั่วโมงแล้วและดูเหมือนว่าฉันจะผ่านขั้นตอนสุดท้ายไม่ได้
ฉันรู้ด้วยว่าฉันสามารถดึงสิ่งนี้ออกมาในรหัสแอปพลิเคชันได้ แต่เหตุผลที่ฉันต้องการลองแก้ไขใน nginx conf นั้นก็เพื่อเหตุผลด้านความเข้ากันได้เพราะมันทำงานบน Apache ด้วย ฉันควรจะบอกว่าฉันได้คิดวิธีแฮ็คจริงๆที่จะทำ แต่มันเกี่ยวข้องกับคำสั่ง "ถ้า" เพื่อตรวจสอบการมีอยู่ของไฟล์และเอกสารระบุว่าไม่ให้ทำแบบนั้น