Hoàng Web

Thiết Kế Website WordPress

  • Kho giao diện
  • Dịch Vụ
    • Thiết kế web giá rẻ
    • Thiết kế website WordPress
    • Hosting Miễn Phí 100GB
    • Tích hợp thanh toán MoMo, ViettelPay, Vietcombank, MB..
    • Tối ưu Google PageSpeed
    • Sửa lỗi nâng cấp website
    • Viết plugin WordPress
    • Code Tool theo yêu cầu
  • Bảng giá
  • Quy trình làm việc
  • Giới thiệu
  • Liên Lạc
Trang chủ » Wordpress » Lỗi 404 khi lưu post wordpress

Lỗi 404 khi lưu post wordpress

Thứ Hai, 23/03/2015 by Hoàng Quách

  • shares
  • Facebook
  • Facebook Messenger
  • Gmail
  • Viber
  • Skype

Lỗi này thường xuyên xẩy ra khi bạn đăng nội dung tiếng anh. Sau khi bạn lưu nội dung post mới hoặc cập nhật post cũ thỉnh thoảng bạn bị nhẩy đến trang 404 và hiện tượng này xẩy ra ngẫu nhiên không có căn cứ nào để nhận dạng khi nào thì lỗi đó bị lặp lại.

Sau khi tìm hiểu các bài viết trên mạng về nguyên nhân lỗi đăng bài này, mình đã biết nguyên nhân do ‘mod_security’ được cài đặt trên apache. Nếu trong nội dung post có chứa một số từ mà extension mod_security không cho phép, ví dụ như lệnh SQL “insert” thì sau khi nhấn nút Publish/update wordpress sẽ trả về trang 404 not found.
Giải pháp.

1. Tắt mod_security

Có nhiều gợi để tắt mod_security module bằng cách chèn rules vào file .htaccess

#...
<IfModule mod_security.c>
SecFilterEngine Off
SecFilterPost Off
</IfModule>
 
<IfModule mod_env.c>
SetEnv MODSEC_ENABLE Off
PassEnv MODSEC_ENABLE
</IfModule>
#...

Không may mắn, giải pháp trên không làm việc với một số hosting. Lúc này bạn có thể can thiệp sâu vào apache, chúng ta mở file httpd.conf và thấy hosting đang sử dụng mod_security2 đây là module mới nhất. Bạn tắt module này trong htaccess như sau:

#...
<IfModule mod_sec2.c>
SecFilterEngine Off
SecFilterPost Off
</IfModule>
#...

Nếu trường hợp cũng không hoạt động, chúng ta thực hiện tiếp giải pháp dưới đây.

Sửa mod_security Rules

Sau một hồi tìm kiếm, kết quả mod_security 2 không còn được hỗ trợ sửa đổi trong htaccess , bạn cần thay đổi rules thông qua file config.
Tìm file /usr/local/apache/conf/modsec2/exclude.conf và thêm đoạn dưới đây vào trên cùng.

<locationmatch "/wp-admin/post.php">
SecRuleRemoveById 300013
SecRuleRemoveById 300015
SecRuleRemoveById 300016
SecRuleRemoveById 300017
</locationmatch>

WordPress sử dụng /wp-admin/post.php để lưu post và mod_security chặn những ký tự, từ không được phép bởi chỉ số rules: 300013, 300015, 300016, 300017. Khởi động lại Apache Server. Thử thêm đoạn mà trước đó bạn bị chuyển sang 404 và cập nhật lại post một lần nữa chắc chắn sẽ thành công.

Tìm rule ID

Làm sao chúng ta biết rule nào để loại bỏ? bạn có thể tìm thông tin này trong file log modsec_audit.log, mọi filter bị chặn sẽ được ghi lại trong file này.

# your problem-post URL here...
 
--2950df1e-H--
Message: Access denied with code 500 (phase 2). Pattern match "((select|grant|delete|insert|drop|alter|replace|truncate|update|create|rename|describe)[[:space:]]+[A-Z|a-z|0-9|\
\*| |\\,]+[[:space:]]+(from|into|table|database|index|view)[[:space:]]+
[A-Z|a-z|0-9|\\*| |\\,]|UNION SELECT.*\\'.*\\'.*,[0-9].*INTO.*FROM)" at REQUEST_BODY. 
 
[file "/usr/local/apache/conf/modsec2.user.conf"] [line "345"] [id "300013"] [rev "1"] 
 
[msg "Generic SQL injection protection"] [severity "CRITICAL"]
Action: Intercepted (phase 2)
 
#...

Lọc bởi URL hoặc IP sẽ phát hiện ra rules nào bị kích hoạt khi bạn cập nhật post. Ở trường hợp trên URL của post trên bị chặn bởi rule “300013“.

Lưu ý: kiểm tra log của http.conf, mod_security có thể phát hiện thêm những lỗi khác từ đó cấu hình hosting của bạn cho phù hợp nhu cầu sử dụng.

Nếu bạn thích bài viết này, hãy ủng hộ chúng tôi bằng cách đăng ký nhận bài viết mới ở bên dưới và đừng quên chia sẻ kiến thức này với bạn bè của bạn nhé. Bạn cũng có thể theo dõi blog này trên Twitter và Facebook

  • shares
  • Facebook
  • Facebook Messenger
  • Gmail
  • Viber
  • Skype

Chuyên mục: Wordpress Tìm kiếm: 404

Tôi giúp gì cho bạn?

HOÀNG WEB

Địa chỉ: Tây Sơn, Phường Quang Trung, Quận Đống Đa, Hà Nội

Hotline: 0987 342 124 – 0868 292 303 (8h:00 – 21h:00)

Email: [email protected]

Website: www.hoangweb.com

KẾT NỐI VỚI TÔI

  • Facebook
  • GitHub
  • YouTube

SẢN PHẨM

  • Plugin Thanh Toán Quét Mã QR Code Tự Động
  • WP2Speed – Tối ưu Google Speed
  • 23WebHost – Hosting Miễn Phí 100GB

LIÊN KẾT

  • Có nên thuê thiết kế website giá rẻ?
  • Hướng dẫn thanh toán
  • Chính sách hoàn tiền
  • Trung tâm hỗ trợ

Copyright © 2023 | All rights reserved | HOANG WEB
Mọi hình thức sao chép nội dung trên website này mà chưa được sự đồng ý đều là trái phép.