Score:0

จะเปลี่ยนเส้นทางผู้ใช้ได้อย่างไรหากเข้าถึงไฟล์ภาพโดยตรงโดยเบราว์เซอร์ [งินซ์]

ธง cn

ฉันจะเปลี่ยนเส้นทางได้อย่างไรหากผู้ใช้พยายามเข้าถึงไฟล์ภาพโดยตรงในเบราว์เซอร์เท่านั้น ฉันต้องการให้ความสามารถในการฝังรูปภาพด้วย <img src="...">. วิธีการเปลี่ยนเส้นทางจาก

https://img.example.com/c/600x1200_90_webp/img-master/img/2022/01/03/08/04/54/95259215_p0_master1200.jpg

ถึง

https://example.com/detail?id=95259215

นี่คือการกำหนดค่า nginx ของฉัน

ตำแหน่ง ~ "^/c/600x1200_90_webp/img-master/img/\d+/\d+/\d+/\d+/\d+/\d+/(?<filename>.+\.(jpg|png|webp)) $" {
    ส่งคืน 301 https://example.com/detail?id=$filename;
}

รหัสไม่ทำงานเพราะมันจะไป https://example.com/detail?id=95259215_p0_master1200.jpg แต่ฉันต้องการให้มันตัดสตริงหลังจากหลักสุดท้ายของชื่อไฟล์ ดังนั้นในกรณีนี้ให้ตัดออก _p0_master1200.jpg. ฉันไม่รู้วิธีสร้างหากผู้ใช้เข้าถึงผ่านเบราว์เซอร์

Score:0
ธง us

นิพจน์ทั่วไปของคุณ (?<ชื่อไฟล์>.+\.(jpg|png|webp))$ จับชื่อไฟล์ทั้งหมดไปยังตัวแปรชื่อไฟล์ ให้คัดมาเฉพาะส่วนก่อน _ เป็นตัวแปร ให้ใช้สิ่งต่อไปนี้แทน:

(?<ชื่อไฟล์>[0-9]+).+(?:jpg|png|webp)$

อันนี้ตรงกับตัวเลขสำหรับ ชื่อไฟล์ ตัวแปร (ฉันจะเรียกว่า อิมเมจ_ไอดี อธิบายเพิ่มเติม) https://regexr.com เป็นเครื่องมือที่ดีสำหรับการทำงานกับนิพจน์ทั่วไป

สำหรับการจำกัดการแสดงเฉพาะเบราว์เซอร์ คุณต้องใช้ โมดูลผู้อ้างอิง nginx http.

ทั้งสองนี้รวมกัน การกำหนดค่าจะมีลักษณะดังนี้:

ตำแหน่ง ~ "^/c/600x1200_90_webp/img-master/img/\d+/\d+/\d+/\d+/\d+/\d+/(?<filename>[0-9]+).+(?: jpg|png|webp)$" {
    valid_referers server_names;
    ถ้า ($invalid_referer = "0") {
        ส่งคืน 301 https://example.com/detail?id=$filename;
    }
}

nginx จะตรวจสอบค่าผู้อ้างอิง HTTP ถ้ามีชื่อระบุใน ชื่อเซิร์ฟเวอร์ มันจะส่งการเปลี่ยนเส้นทาง ฟิลด์ผู้อ้างอิงถูกกำหนดโดยเบราว์เซอร์เมื่อโหลดทรัพยากรสำหรับหน้าเว็บ

โพสต์คำตอบ

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