Quy tắc WordPress cũng có ngoại lệ

wordpress apache
Thời gian đọc: 2 phút

wordpress apacheWordPress đã thực hiện một bước tiến lớn trong nền tảng blog, chuyển nó đến gần hơn với hệ thống quản lý nội dung chính thức với tính năng theo dõi sửa đổi, hỗ trợ nhiều hơn cho các menu tùy chỉnh và – tính năng hấp dẫn nhất đối với tôi – hỗ trợ nhiều trang web với ánh xạ miền.

Nếu bạn không phải là một người nghiện hệ thống quản lý nội dung, không sao cả. Bạn có thể bỏ qua ngay bài viết này. Nhưng đối với những người đam mê công nghệ, những người viết code và những người chuyên về apache, tôi muốn chia sẻ điều gì đó thú vị và điều gì đó thú vị.

Đa trang là một tính năng cho phép bạn chạy bất kỳ số lượng trang web WordPress nào với một cài đặt WordPress duy nhất. Nếu bạn quản lý nhiều trang web, thật tuyệt vì bạn có thể cài đặt một nhóm chủ đề và tiện ích con đã được phê duyệt và kích hoạt chúng cho các trang web khách hàng của mình. Có một vài trở ngại kỹ thuật để lập bản đồ các miền của bạn, nhưng quá trình này không khó.

Một trong những vấn đề mà tôi đã xác định là tùy chỉnh chủ đề. Vì chủ đề có thể được cung cấp cho nhiều trang web, bất kỳ tùy chỉnh nào bạn thực hiện với chủ đề cũng sẽ ảnh hưởng đến bất kỳ trang web nào khác sử dụng chủ đề đó trên cài đặt nhiều trang web của bạn. Cách giải quyết vấn đề này của tôi là sao chép một chủ đề trước khi bắt đầu tùy chỉnh và đặt tên rõ ràng cho chủ đề cho trang web khách hàng mà tôi đang tạo kiểu cho nó.

Một vấn đề thú vị khác là những gì xảy ra trong tệp .htaccess trên máy chủ Apache của bạn. WordPress cần viết lại các đường dẫn trên cơ sở từng blog và thực hiện điều này bằng quy tắc viết lại và tệp php.

WordPress sử dụng quy tắc viết lại sau:

RewriteRule ^ ([_ 0-9a-zA-Z -] + /)? Files /(.+) wp-include / ms-files.php? File = $ 2 [L]

Về cơ bản, bất kỳ thứ gì trong thư mục con của mysite.com/files/directory đều được ghi lại thành mysite.com/files/wp-includes/myblogfolderpath… và đây là nơi nó trở nên thú vị. Điều gì sẽ xảy ra nếu bạn thực sự cần một tệp trên máy chủ của mình là mysite.com/files/myfolder/myimage.jpg? Bạn gặp lỗi 404, đó là những gì sẽ xảy ra. Quy tắc viết lại Apache bắt đầu và thay đổi đường dẫn.

Đúng là bạn có thể không bao giờ gặp phải vấn đề này, nhưng tôi đã làm. Tôi có một trang web cần sử dụng tiện ích javascript từ một trang web khác và nó cần tìm đồ họa tại mysite.com/files/Images/myfile. Vì không có cách nào để thay đổi tệp trên trang web lưu trữ, tôi cần tìm ra cách thực hiện việc này trên máy chủ của mình. Giải pháp dễ dàng là tạo điều kiện ghi lại tạo ngoại lệ cho các tệp cụ thể.

Đây là giải pháp:

RewriteCond% {REQUEST_URI}! /? Files / Image / file1.jpg $
RewriteCond% {REQUEST_URI}! /? Files / Image / file2.jpg $
RewriteRule ^ ([_ 0-9a-zA-Z -] + /)? Files /(.+) wp-include / ms-files.php? File = $ 2 [L]

Các điều kiện viết lại phải được đặt trước quy tắc viết lại, nếu không thủ thuật này sẽ không hoạt động. Sẽ dễ dàng sửa đổi điều kiện này cho các mục đích của riêng bạn, nếu bạn gặp phải vấn đề tương tự. Giải pháp đã hoạt động hiệu quả đối với tôi, cho phép tôi thay thế đồ họa tùy chỉnh thay vì văn bản thay thế kém mong muốn không phù hợp với thiết kế của tôi. Hy vọng rằng, nó cũng sẽ làm việc cho bạn.

Bạn nghĩ gì?

Trang web này sử dụng Akismet để giảm spam. Tìm hiểu cách xử lý dữ liệu nhận xét của bạn.