Trong quá trình truy cập hệ thống, rất có khả năng file trong hệ thống đã bị xoá đi, trong trường hợp này, với sự hỗ trợ của directive try_files
ta có thể điều hướng người dùng tới trang thông báo cần thiết.
Hãy tham khảo ví dụ sau
events {
}
http {
include /etc/nginx/mime.types;
server {
listen 80;
server_name nglearns.test;
root /srv/nglearns/static-demo;
try_files /picture.jpg /not_found;
location /not_found {
return 404 "Can not find image!\n";
}
}
}
Trong ví dụ trên, nếu hình ảnh với tên picture.jpg
vẫn còn tồn tại trong hệ thống, hình ảnh sẽ được hiển thị. Ngược lại, nginx sẽ điều hướng tới trang not_found
với mã lỗi 404
Với cách làm trên, chúng ta có thể dễ dàng kiểm soát điều hướng cho 1 file, nhưng nếu nhiều file thì việc config cần phải thay đổi đôi chút. Hãy tham khảo ví dụ sau đây.
events {
}
http {
include /etc/nginx/mime.types;
server {
listen 80;
server_name nglearns.test;
root /srv/nglearns/static-demo;
try_files $uri $uri/ /not_found;
location /not_found {
return 404 "Can not find anything!\n";
}
}
}
Trong ví dụ trên, khi người dùng truy cập vào địa chị URI
, hệ thống sẽ tìm file theo URI
trước, nếu không có sẽ tiếp tục truy cập như một Direction
và tìm file index
đại diện, và nếu không tìm thấy thì sẽ điều hướng qua not_found
và hiển thị lỗi với mã là 404