Điểm:3

htaccess viết lại /dir/*.jpg thành /dir/webp/*.webp chỉ khi tệp webp tồn tại

lá cờ cn

Tôi đang cố viết lại tất cả các tệp trang web (*.jpg|*.gif|*.png) đến *.webp trong một thư mục con, nhưng chỉ khi *.webp File tồn tại.Các tệp trước và mới có cùng tên, chỉ thay đổi phần mở rộng và *.webp tất cả các tệp đều nằm dưới thư mục con của tệp gốc.

Tôi đang vật lộn với htaccess để thực hiện công việc. Các quy tắc cơ bản là:

  1. Chỉ khớp với tệp PNG/JPG/GIF
  2. Mẫu thư mục hình ảnh gốc là: /site/views/00_projects/[TÊN TRỰC TIẾP CHÍNH CÓ THỂ BIẾN TẠI ĐÂY]/content/image/[TÊN TRỰC TIẾP CON CÓ THỂ TẠI ĐÂY]/*.jpg
  3. Mới mẻ *.webp dir là mẫu là: /site/views/00_projects/[TÊN TRỰC TIẾP BIẾN TẠI ĐÂY]/content/image/[TÊN TRỰC TIẾP THAY ĐỔI TẠI ĐÂY]/webp/*.webp
  4. Chỉ viết lại NẾU tệp webp tồn tại

Tôi thực sự không biết làm thế nào để làm cho nó hoạt động. Ai đó có thể giúp đỡ?

Điểm:4
lá cờ kz

Nói một cách chính xác, bạn cũng cần đảm bảo rằng tác nhân người dùng đưa ra yêu cầu hỗ trợ hình ảnh WEBP (nghĩa là kiểm tra Chấp nhận Tiêu đề yêu cầu HTTP cho hình ảnh/webp).

Hãy thử cách sau gần đầu gốc .htaccess tập tin:

Viết LạiEngine Trên

# Ghi lại hình ảnh vào WebP nếu chúng tồn tại
RewriteCond %{HTTP_ACCCEPT} hình ảnh/webp
RewriteCond %{DOCUMENT_ROOT}/$1/webp/$2.webp -f
RewriteRule ^(site/views/00_projects/[^/]+/content/image/[^/]+)/([^/]+)\.(?:png|jpg|gif)$ $1/webp/$2 .webp [T=hình ảnh/webp,L]

Các viết lại quy tắc mẫu (I E. ^(site/views/00_projects/[^/]+/content/image/[^/]+)/([^/]+)\.(?:png|jpg|gif)$) phù hợp với yêu cầu png, jpg hoặc gif hình ảnh và lưu đường dẫn URL trong $1 phản hồi và tên tệp trong $2 phản hồi (được sử dụng sau này trong viết lại quy tắc thay thế chuỗi).

đầu tiên điều kiện, tình trạng, trạng thái (Viết lạiĐiều kiện chỉ thị) để kiểm tra đối với HTTP_ACCEPT biến máy chủ, hãy kiểm tra xem tác nhân người dùng có hỗ trợ hình ảnh WEBP không.

Thư hai điều kiện, tình trạng, trạng thái kiểm tra xem hình ảnh webp mục tiêu có tồn tại không.

Các T=hình ảnh/webp cờ là cần thiết để gửi đúng loại mime (Loại nội dung tiêu đề) trở lại máy khách.

lá cờ cn
Làm việc như một bùa mê, CẢM ƠN RẤT NHIỀU! Một câu hỏi nhỏ: với mã này, URL giữ đường dẫn tệp gốc (với *.jpg, i.e.); nó cần gì để chuyển hướng đến đường dẫn url *.webp nếu nó tồn tại và trình duyệt hỗ trợ nó?
lá cờ kz
@DiegoFlores Không có gì. Đối với "chuyển hướng" _ Permanent_, bạn sẽ thêm cờ `R=301` vào chỉ thị `RewriteRule` và sau đó bạn sẽ không cần cờ `T`. I E. `[R=301,L]`. Tuy nhiên, nhìn chung, bạn nên tránh chuyển hướng bên ngoài nếu đây là nhiều hình ảnh trong trang, vì nó có khả năng làm chậm người dùng của bạn (không tốt cho SEO) và tăng gấp đôi số yêu cầu gửi đến máy chủ của bạn, làm đầy nhật ký của bạn với hàng loạt lỗi 301 cho những gì "bình thường" yêu cầu. Nếu bạn đang liên kết đến các tệp `.jpg`, v.v. thì hãy giữ nó dưới dạng viết lại nội bộ, nếu không, hãy thay đổi các URL mà bạn đang liên kết đến.
lá cờ cn
Cảm ơn một lần nữa! Tôi sẽ ghi nhớ điều đó! Tôi chỉ tự hỏi liệu Google sẽ đọc đúng Loại nội dung hay chỉ URL của tệp với giải pháp đầu tiên khi đánh giá SEO/Tốc độ trang/v.v. ;-) Dù sao, bạn đã tiết kiệm được thời gian
lá cờ kz
@DiegoFlores Có, Google sẽ đọc "Loại nội dung phù hợp" - đó là mục đích của cờ `T`. Cho dù "URL" kết thúc bằng `.jpg` (hoặc bất kỳ thứ gì) đều không liên quan - đó không phải là URL xác định loại mime.
lá cờ kz
@DiegoFlores Nếu điều này trả lời câu hỏi của bạn thì vui lòng đánh dấu nó là "được chấp nhận" bằng cách nhấp vào dấu kiểm/dấu kiểm bên cạnh câu trả lời bên dưới mũi tên biểu quyết (để giúp những người đọc khác). Cảm ơn, rất cảm kích. :)

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.