ตำแหน่งจาก nginx conf:
location ~/photos/resize/(\d+)/(\d+) {
# Here var1=(\d+), var2=(\d+)
}
ฉันจะรับตัวแปรจากตำแหน่งใน nginx ได้อย่างไร
ตำแหน่งจาก nginx conf:
location ~/photos/resize/(\d+)/(\d+) {
# Here var1=(\d+), var2=(\d+)
}
ฉันจะรับตัวแปรจากตำแหน่งใน nginx ได้อย่างไร
คำตอบ:
regex ใช้งานได้ดีเหมือนในทุก ๆ ที่ที่มี
location ~/photos/resize/(\d+)/(\d+) {
# use $1 for the first \d+ and $2 for the second, and so on.
}
การดูตัวอย่างบน nginx wiki อาจช่วยได้เช่นกันhttp://wiki.nginx.org/Configuration
นอกเหนือจากคำตอบก่อนหน้านี้คุณยังสามารถตั้งชื่อของกลุ่ม regex ที่จับได้เพื่อให้สามารถเรียกได้ง่ายขึ้นในภายหลัง
location ~/photos/resize/(?<width>(\d+))/(?<height>(\d+)) {
# so here you can use the $width and the $height variables
}
ดูNGINX: ตรวจสอบว่า $ remote_user เท่ากับส่วนแรกของตำแหน่งสำหรับตัวอย่างการใช้งานหรือไม่
(?<width>\d+)
แทน(?<width>(\d+))
หรือมีเหตุผลอื่นสำหรับเรื่องนี้ - อาจจะได้รับ$1
เช่นกัน$width
?
คุณสามารถลองสิ่งนี้:
location ~ ^/photos/resize/.+ {
rewrite ^/photos/resize/(\d+)/(\d+) /my_resize_script.php?w=$1&h=$2 last;
}
$1 $2 $3
อื่นเป็นต้นจะอ้างอิงค่าจาก nex regex ที่ซ้อนทับเขียนทับ$1 $2 ...
ใน regex ภายนอกalias /$1
ในด้านนอก regex จะใช้$1
จากภายใน regex ซึ่งผลลัพธ์ที่มีแนวโน้มในแฟ้มที่ไม่พบ