ฉันดูเอกสาร nginx และมันยังทำให้ฉันสับสนอย่างที่สุด
อย่างไรtry_files
ทำงานอย่างไร นี่คือสิ่งที่เอกสารบอกว่า:
try_files
ไวยากรณ์: try_files path1 [path2] uri
เริ่มต้น: ไม่มี
บริบท: เซิร์ฟเวอร์, ตำแหน่ง
ห้องว่าง: 0.7.27
ตรวจสอบการมีอยู่ของไฟล์ตามลำดับและส่งคืนไฟล์แรกที่พบ สแลชต่อท้ายบ่งชี้ไดเรกทอรี - $ uri / ในกรณีที่ไม่พบไฟล์การเปลี่ยนเส้นทางภายในไปยังพารามิเตอร์สุดท้ายจะถูกเรียกใช้ พารามิเตอร์สุดท้ายคือทางเลือก URI และ ต้องมีอยู่มิฉะนั้นจะเกิดข้อผิดพลาดภายใน ซึ่งแตกต่างจากการเขียนใหม่ $ args จะไม่ถูกเก็บไว้โดยอัตโนมัติหากทางเลือกไม่ใช่ตำแหน่งที่ระบุชื่อ หากคุณต้องการเก็บรักษา args คุณต้องทำอย่างชัดเจน:
ฉันไม่เข้าใจวิธีการตรวจสอบเส้นทางและจะทำอย่างไรหากฉันไม่ต้องการข้อผิดพลาดภายใน แต่ให้เริ่มเส้นทางที่เหลือต่อเพื่อหาไฟล์อื่น
หากฉันต้องการลองใช้ไฟล์แคช/path/app/cache/url/index.html
และหากล้มเหลวในการลอง/path/app/index.php
ฉันจะเขียนมันได้อย่างไร ถ้าฉันเขียนว่า:
try_files /path/app/cache/ $uri
include /etc/nginx/fastcgi_params;
fastcgi_pass unix:/var/run/php-fastcgi/php-fastcgi.socket;
fastcgi_param SCRIPT_FILENAME $document_root/index.php;
index index.php index.html index.htm;
ฉันมี เมื่อฉันเยี่ยมชม/urlname
จะลองตรวจสอบ/path/app/cache/urlname/index.php
แล้ว/path/app/cache/urlname/index.html
หรือไม่ ถ้าเราไม่สนใจทุกอย่างหลังจากtry_files
เป็นไปได้สำหรับtry_files
การตรวจสอบโฟลเดอร์แคช? ฉันพยายามแล้วและล้มเหลว