Tôi nhìn vào tài liệu nginx và nó vẫn làm tôi bối rối.
Làm thế nào để try_files
làm việc? Đây là những gì tài liệu nói:
thử_files
cú pháp: try_files path1 [path2] uri
mặc định: không có
bối cảnh: máy chủ, địa điểm
sẵn có: 0,7,27
Kiểm tra sự tồn tại của các tệp theo thứ tự và trả về tệp đầu tiên được tìm thấy. Dấu gạch chéo chỉ ra một thư mục - $ uri /. Trong trường hợp không tìm thấy tệp nào, một chuyển hướng nội bộ đến tham số cuối cùng được gọi. Tham số cuối cùng là URI dự phòng và phải tồn tại, nếu không sẽ xảy ra lỗi nội bộ. Không giống như viết lại, $ args không được bảo toàn tự động nếu dự phòng không phải là một vị trí được đặt tên. Nếu bạn cần bảo tồn args, bạn phải làm như vậy một cách rõ ràng:
Tôi không hiểu làm thế nào nó kiểm tra các đường dẫn và nếu tôi không muốn có lỗi nội bộ nhưng nó có tiếp tục phần còn lại của đường dẫn trong nỗ lực tìm tệp khác không?
Nếu tôi muốn thử một tập tin lưu trữ tại /path/app/cache/url/index.html
và nếu nó không thử /path/app/index.php
làm thế nào tôi sẽ viết nó? Nếu tôi viết:
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;
Tôi có index index.php index.html index.htm;
. Khi tôi truy cập /urlname
, nó sẽ thử kiểm tra /path/app/cache/urlname/index.php
sau đó /path/app/cache/urlname/index.html
? Nếu chúng ta bỏ qua mọi thứ sau try_files
thì có thể try_files
kiểm tra thư mục bộ đệm không? Tôi đã cố gắng và đã thất bại.