Mình đã gặp một lỗi khá khoai khi post bài sử dụng CMS WordPress đó là : Khi thực hiện save Draft hoặc Publish, Update nội dụng của post/page thì gặp post/page đó bị 404 (ngay cả chế độ preview cũng bị404 luôn). Sau 1 đêm tìm hiểu mình đã tìm ra được các khắc phục lỗi này, vì vậy mình muốn chia sẻ cho các bạn cách khắc phục nó.
Nguyên nhân
Một vài hosting khi cài đặt có sử dụng mod_security – mod_security có thể coi là một bộ lọc cho hosting – vậy mỗi khi bạn request tới host, dữ liệu chứa trong request của bạn sẽ được mod_security này xử lý dạng text và duyệt dựa trên một số từ khóa chống chỉ định (các từ trong danh sách đen). Nếu data request có chứa các text đó thì sẽ bị trả về 404. Dó đó đây là nguyên nhân gây ra tình trạng thỉnh thoảng có bài viết của các bạn bị 404 not found khi save, update hoặc publish.
Cách khắc phục
Vậy các bạn đã hiểu rằng nguyên nhân là do thằng MOD_SECURITY rồi chứ. Bây giờ có 2 cách để các bạn có thể khắc phục được lỗi ERROR 404 khi SAVE / UPDATE / PUBLISH trong WordPress.
Cách 1 : Bởi vì cái Mod_security này là do nhà cung cấp hosting của bạn cài đặt nên bạn có thể liên hệ với kỹ thuật bên họ để disable Mod_security trên hosting của mình.
Cách 2 : WordPress có 1 cách để các bạn khắc phục đó là sửa (edit) file .htaccess . Trước tiên bạn cần vào File Manager trên hosting và edit file .htacccess và thêm nội dung như sau vào cuối file, sau đó SAVE:
<IfModule mod_security.c> SecFilterEngine Off SecFilterScanPOST Off </IfModule>
Giờ các bạn có thể thử vào test lại lỗi này xem còn xảy ra nữa không nhé. Mình đã áp dụng cả 2 cách và thành công. Chúc bạn thành công.
P/S : Cafeitvn.com mong muốn có thể trở thành nơi tổng hợp nhiều kiến thức về lập trình các ngôn ngữ, đồng thời mong rằng là nơi ghé thăm thường xuyên của các bạn đam mê lập trình. Hãy đăng ký email để nhận được bài viết mới về lập trình nhé.