Chính sách chuyển hướng
Chính sách chuyển hướng được dùng để chuyển hướng một URL nhất định sang một URL khác. Mã HTTP khi chuyển hướng có thể là “301 Permanent Redirect” hoặc “302 Temporary Redirect”
Cách xác định URL có được chuyển hướng không¶
Có 2 cách xác định một URL có được chuyển hướng hay không trên hệ thống CDN:
-
Tiền tố: Loại khớp tiền tố sẽ áp dụng khi URL bắt đầu bằng đường dẫn được chỉ định khớp với giá trị cho trước. Ví dụ, một đường dẫn URL là /images sẽ áp dụng chính sách cho tất cả các tệp trong thư mục /images. Ngoài ra, khách hàng có thể thiết lập chính sách trên một tệp cụ thể bằng cách nhập rõ ràng đường dẫn tệp làm tiền tố, ví dụ: URL /files/mydownload.zip sẽ áp dụng chính sách cho tệp đơn lẻ mydownload.zip.
-
Regex (Biểu thức chính quy): cho phép tạo ra một số chính sách rất linh hoạt bằng cách cung cấp khả năng định nghĩa trước các đường dẫn tệp. Ví dụ, một regex /video/.+.mp4 sẽ khớp với tất cả các tệp trong thư mục /video có phần mở rộng .mp4. CDN sẽ phân tích URL của yêu cầu để xác định xem có nên áp dụng một quy tắc chính sách hay không. Cần cẩn trọng khi sử dụng khớp regex cho các đường dẫn URL; biểu thức chính quy rất mạnh mẽ, nhưng cũng cần phải thận trọng để đảm bảo rằng không có hậu quả ngoài ý muốn từ việc sử dụng chúng.
Có nhiều phương ngữ của biểu thức chính quy trông giống nhau nhưng có những khác biệt quan trọng. Chính sách CDN sử dụng cú pháp của ngôn ngữ Perl.
Info
Để biết thêm thông tin về regex, trang web này cung cấp một phần giới thiệu hữu ích: Regular-Expressions.info.
Giải thích một số giá trị regex¶
Kí tự đặc biệt¶
Biểu thức chính quy là sự kết hợp của văn bản và các mẫu. Các mẫu được định nghĩa bằng một tập hợp các ký tự đặc biệt: . [{} () \ * + ? | ^ $
Nếu cần sử dụng bất kỳ ký tự đặc biệt nào trong biểu thức, chúng phải được viết kèm với \ (dấu gạch chéo ngược). Dấu gạch chéo ngược cho biết rằng ký tự này là một phần của chuỗi, không phải là một ký tự đặc biệt trong mẫu.
Ví dụ
Một biểu thức chính quy /animated$files sẽ không khớp với đường dẫn thực tế /animated$ files trừ khi được viết với dấu gạch chéo ngược: /animated\$files/
Ký tự đại diện¶
Dạng đơn giản nhất của biểu thức chính quy là sử dụng ký tự đại diện. Trong cú pháp biểu thức chính quy, dấu chấm (.) khớp với bất kỳ ký tự nào. Ta có thể mở rộng điều này bằng cách thêm một số lượng ký tự (*, + hoặc ?).
Trong đó:
-
.*
khớp với 0 hoặc nhiều ký tự -
.+
khớp với một hoặc nhiều ký tự -
.?
khớp với 0 hoặc một ký tự
Ta cũng có thể áp dụng các bộ nhân này cho văn bản và phạm vi ký tự.
Phạm vi ký tự¶
Ta có thể tạo một mẫu khớp với một phạm vi ký tự bằng cách đặt nó vào trong dấu ngoặc vuông: []. Đây có thể là một tập hợp các ký tự hoặc một phạm vi ký tự.
Ví dụ
[123456789] giống như [1-9].
[a-zA-Z0-9] khớp với bất kỳ chữ cái hoặc chữ số nào (viết thường hoặc viết hoa).
Ngoài ra có thể kết hợp chúng với các bộ nhân: [a-z]+ khớp với một hoặc nhiều chữ cái viết thường.
Tùy chọn thay thế¶
Các tùy chọn thay thế có thể được chỉ định, ví dụ như ta có thể tạo một mẫu khớp với ba phần mở rộng tệp cụ thể. Các tùy chọn thay thế được liệt kê như (
Các mẫu trong tùy chọn thay thế có thể là văn bản đơn giản hoặc biểu thức chính quy.
Điểm neo¶
Giống như các quy tắc tiền tố, biểu thức chính quy phải khớp với dấu / dẫn đầu trên một đường dẫn - vì vậy một mẫu đơn giản như filename.txt sẽ không khớp với bất kỳ điều gì.
Biểu thức chính quy phải khớp từ đầu đến cuối của đường dẫn - vì vậy /file sẽ khớp với http://host/file nhưng không phải http://host/file.txt.
Một số ví dụ thông thường:
-
/files/august chỉ khớp với đường dẫn /files/august - điều này không giống với việc sử dụng tiền tố vì nó chỉ khớp với đường dẫn cụ thể này và không phải bất kỳ đường dẫn nào bên dưới nó.
-
/files/.+/index.html khớp với tất cả các tệp index.html dưới thư mục gốc "files", bất kể vị trí của chúng.
-
/files/august/.+\.(mp4|ogg|swf) khớp với tất cả các tệp trong thư mục /files/august có phần mở rộng là .mp4, .ogg hoặc .swf. Lưu ý dấu "\" trước dấu "." để đảm bảo nó hoạt động như văn bản thay vì là một phần của mẫu.
Khớp nhiều mẫu¶
Nếu có hơn một chính sách khớp với URL, các chính sách sẽ được so sánh và chính sách cụ thể nhất sẽ được sử dụng.
Trước tiên, các tiền tố và biểu thức chính quy sẽ được so sánh để tìm ra cái cụ thể nhất. Nếu chúng tương đương, mạng con IP và vị trí sẽ được kiểm tra.
Khi so sánh hai tiền tố, tiền tố dài nhất được coi là cụ thể nhất.
Khi so sánh hai biểu thức chính quy, chiều dài văn bản ở đầu biểu thức sẽ được kiểm tra trước bất kỳ mẫu nào. Biểu thức chính quy cụ thể nhất là biểu thức có văn bản đầu tiên dài nhất.
Khi so sánh một biểu thức chính quy và một tiền tố, chiều dài của văn bản đầu tiên từ biểu thức chính quy sẽ được so sánh với chiều dài của tiền tố, và cái nào dài hơn sẽ được coi là cụ thể nhất.