ฉันได้ย้ายจาก Apache ไปยัง Nginx ดังนั้นฉันต้องการตั้งกฎทั้งหมดใน Nginx
เป้าหมาย: เปลี่ยนเส้นทาง URL ไปยังโดเมนอื่นที่มีชื่อไฟล์เดียวกัน หากไม่พบไฟล์นั้นบนเซิร์ฟเวอร์ที่ร้องขอ
ตัวอย่าง
หากผู้ใช้เปิด https://www.example.com/data/1.jpg จากนั้นเซิร์ฟเวอร์ของฉันจะพยายามค้นหา "1.jpg" ใน "data" dir หากไม่พบไฟล์นั้น ให้เปลี่ยนเส้นทางผู้ใช้ไปยัง URL เซิร์ฟเวอร์สำรอง เช่น https://www.example2.com/backup/1.jpg
ตัวอย่างใน .htaccess
RewriteCond %{REQUEST_FILENAME} -f [หรือ]
RewriteCond %{REQUEST_FILENAME} -d
กฎการเขียนซ้ำ (.*) - [L]
RewriteRule (.*) https://example2.com/backup/$1 [L]
สิ่งที่ฉันได้ลอง
- ค้นหาวิธีแก้ปัญหาที่มีอยู่ แต่ฉันไม่พบวิธีแก้ปัญหาที่ใช้งานได้
- ลองแปลง apache config เป็น Nginx config ผ่านตัวแปลง แต่ไม่ทำงาน
บางคนพยายามกำหนดค่า แต่ไม่ทำงาน
ตำแหน่ง ~ /data/.* {
ถ้า (-e $request_filename){
เขียนใหม่ ^ https://www.example2.com/backup/$1 สุดท้าย;
}
}
ตำแหน่ง ~ /data/.* {
ถ้า (-e $request_filename){
เขียนใหม่ ^ https://www.example2.com/backup/$1 ถาวร;
}
}
ตำแหน่ง ~ /data/.* {
try_files $uri https://www.example2.com/backup/$uri;
}