Score:0

วิธีรับค่าตัวแปรใน split_clients NGINX

ธง pl

ฉันกำลังใช้ [split_clients] และทำงานได้อย่างสมบูรณ์แบบในกรณีส่วนใหญ่

อ้างอิง: https://nginx.org/en/docs/http/ngx_http_split_clients_module.html

split_clients ส่งคืนสตริงที่แท้จริงเพื่อใช้งานต่อไป

แต่ตอนนี้ฉันต้องการสตริงที่ส่งคืนซึ่งมีตัวแปรดังนี้:

http บริบท:

split_clients "${remote_addr}${http_user_agent}${date_gmt}" $my_variable {
    20% https://example.com/fixed_string/another_fixed_string;
    * https://example.com/$1/another_fixed_string;
}

เซิร์ฟเวอร์ บริบท:

ตำแหน่ง ~ ^/abc/(.*) {
   เขียนใหม่ ^/abc/(.*) $my_variable redirect;
}

เมื่อฉันไปเยี่ยม https://example.org/abc/something, มันเปลี่ยนเส้นทางไปที่ https://example.com/$1/another_fixed_string กับ $1 เป็นสตริงตามตัวอักษรใน URL

ความคาดหวังของฉันคือ $1 ทำหน้าที่เป็นตัวแปรและค่าของมันคือ บางสิ่งบางอย่างจากนั้นเปลี่ยนเส้นทางไปที่ https://example.com/something/another_fixed_string

วิธีการใช้?

pl flag
มีวิธีใดที่จะแทนที่ในสตริง เช่น `str_replace("$1", $1, $my_variable)` สิ่งนี้จะใช้ได้หากเป็นไปได้
Gerard H. Pille avatar
in flag
รวม split_clients กับแผนที่หรือไม่
pl flag
@ GerardH.Pille ขอบคุณ มันได้ผล คุณช่วยชีวิตฉัน!
Score:0
ธง pl

ตามที่ @Gerard H. Pille แนะนำให้ใช้ แผนที่ สามารถแก้ปัญหานี้ได้

http บริบท:

split_clients "${remote_addr}${http_user_agent}${date_gmt}" $my_variable {
    20% 0;
    * 1;
}

แผนที่ $my_variable $my_url {
   #default คุณยังสามารถตั้งค่าเริ่มต้น

   0 https://example.com/fixed_string/another_fixed_string;
   1 https://example.com/$1/another_fixed_string;
}

เซิร์ฟเวอร์ บริบท:

ตำแหน่ง ~ ^/abc/(.*) {
   เขียนใหม่ ^/abc/(.*) $my_url redirect;
}

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา