Miklix

Phù hợp với vị trí dựa trên phần mở rộng tệp với NGINX

Đã xuất bản: lúc 01:21:08 UTC 15 tháng 2, 2025

Bài viết này giải thích cách thực hiện so khớp mẫu dựa trên phần mở rộng tệp trong ngữ cảnh vị trí trong NGINX, hữu ích cho việc viết lại URL hoặc xử lý tệp khác nhau dựa trên loại của chúng.


Trang này được dịch máy từ tiếng Anh để có thể tiếp cận được với nhiều người nhất có thể. Thật không may, dịch máy vẫn chưa phải là công nghệ hoàn thiện, do đó có thể xảy ra lỗi. Nếu bạn thích, bạn có thể xem phiên bản tiếng Anh gốc tại đây:

Match Location Based on File Extension with NGINX

Thông tin trong bài đăng này dựa trên NGINX 1.4.6 chạy trên Ubuntu Server 14.04 x64. Thông tin này có thể hoặc không hợp lệ với các phiên bản khác.

Tôi không giỏi về biểu thức chính quy (có lẽ tôi nên cải thiện điều này, tôi biết mà), vì vậy tôi thường cần phải tìm hiểu thêm về nó khi phải làm nhiều việc hơn là chỉ khớp mẫu đơn giản nhất, chẳng hạn như trong ngữ cảnh vị trí của NGINX.

Một tính năng rất hữu ích nếu bạn cần xử lý các loại tệp cụ thể khác nhau là khả năng khớp vị trí dựa trên phần mở rộng của tệp được yêu cầu. Và cũng rất dễ dàng, chỉ thị vị trí của bạn có thể trông giống như thế này:

location ~* \.(js|css|html|txt)$
{
    // do something here
}

Tất nhiên, bạn có thể thay đổi phần mở rộng tùy theo nhu cầu của mình.

Ví dụ trên không phân biệt chữ hoa chữ thường (ví dụ, nó sẽ khớp với cả .js và .JS). Nếu bạn muốn nó phân biệt chữ hoa chữ thường, chỉ cần xóa * sau ~.

Bạn có thể làm gì với kết quả khớp lệnh tùy ý; thông thường, bạn sẽ viết lại kết quả vào chương trình phụ trợ để thực hiện một số loại xử lý trước hoặc bạn có thể chỉ muốn đọc các tệp từ các thư mục khác thay vì hiển thị chúng cho công chúng, khả năng là vô tận ;-)

Chia sẻ trên BlueskyChia sẻ trên FacebookChia sẻ trên LinkedInChia sẻ trên TumblrChia sẻ trên XChia sẻ trên LinkedInGhim trên Pinterest

Mikkel Bang Christensen

Về tác giả

Mikkel Bang Christensen
Mikkel là người sáng lập và chủ sở hữu của miklix.com. Ông có hơn 20 năm kinh nghiệm làm lập trình viên máy tính/nhà phát triển phần mềm chuyên nghiệp và hiện đang làm việc toàn thời gian cho một tập đoàn CNTT lớn của Châu Âu. Khi không viết blog, ông dành thời gian rảnh rỗi cho nhiều sở thích, thú vui và hoạt động, có thể được phản ánh ở một mức độ nào đó trong nhiều chủ đề được đề cập trên trang web này.