Mod_rewrite kết hợp url thân thiện với SEO và CDN

Jan 20 2020

Tôi chắc chắn phải có một cách thông minh để giải quyết vấn đề này nhưng tôi không thể tìm ra. Tôi đang sử dụng mod_rewrite để tạo tên tệp thân thiện với SEO VÀ chuyển sang CDN của chúng tôi. Tôi có thể làm cả hai riêng biệt nhưng chúng cùng nhau hủy bỏ

Chúng tôi sử dụng mod_rewrite (trong htaccess) để tạo tên tệp thân thiện với SEO. Ví dụ :-

RewriteRule ^ thumbnails / ([0-9] +) / ([^ /] +). Jpg$ /thumbnails/$1 / image.jpg [NC, L]

bản đồ https://www.example.com/thumbnails/123/my-image-of-a-puppy.jpg trên https://www.example.com/thumbnails/123/image.jpg

Đó là tất cả các hoạt động tốt. Nhưng chúng tôi cũng sử dụng mod_rewrite để kéo hình ảnh từ CDN, vì vậy chúng tôi sử dụng một cái gì đó như sau: -

RewriteRule ^ (. *). (Jpeg | jpg | png) $ https://cdn-w.example.com%{REQUEST_URI} [R = 301, NC, QSA, L]

Bây giờ mod_rewrite thực hiện chuyển hướng 301 bên ngoài (hoặc 302 nếu tôi bỏ qua bit R = 301).

Điều đó cũng hoạt động tốt nhưng theo như google có liên quan, https://www.example.com/thumbnails/123/my-image-of-a-puppy.jpg chỉ đơn giản là được chuyển hướng đến https://cdn-w.example.com/thumbnails/123/image.jpg Cái nào loại bỏ tên tệp thân thiện với SEO phải không ??

Tui bỏ lỡ điều gì vậy ?

Trả lời

Aidan Jan 20 2020 at 23:34

Nếu bạn sử dụng công cụ sửa đổi [P] trên tham chiếu CDN, nó sẽ hoạt động như bạn dự định.

Sử dụng cờ này để triển khai chỉ thị ProxyPass mạnh mẽ hơn, ánh xạ nội dung từ xa vào không gian tên của máy chủ cục bộ.

Vì vậy, URL phải giữ nguyên như khi nó đang được chuyển đến, với nội dung từ CDN.