1. Lỗi 406 là gì ?
Khi trình duyệt gửi một request để lấy thông tin từ server có nghĩa là trình duyệt gửi Accept header để nói cho server định dạng dữ liệu mà trình duyệt chấp nhận. Nếu server không thể gửi dữ liệu như định dạng trong accept header thì server sẽ trả về code 406 " Not Acceptable error"
2. Tại sao bị lỗi 406:
Thường nguyên nhận gây ra lỗi 406 trên hosting được gây ra bởi mod_security rule trên server. Mod_security là một module tường lửa mềm trong web service apache thường được bật mặc định trên tất cả tài khoản hosting, nếu như request của trang web vi phạm rule của mod_security thì có thể server trả về lỗi 406 trên trình duyệt.
3. Cách xử lý lỗi 406:
Do lỗi 406 thường do mod_security gây ra nên khách hàng có thể tắt security theo domain với cú pháp như sau SecRule SERVER_NAME "domain.com" "phase:1,nolog,allow" trong WHM >> Plugin >> Mod security >> Edit config thêm dòng rule như trên.
Khách hàng có thể tắt mod_security cho tài khoản thông qua ssh như sau :
- Truy cập vào file mod_sec.conf bằng lệnh /usr/local/apache/conf/userdata/std/2/{account}/{domain}/modsec.conf nếu thư mục account và domain chưa tồn tại khách hàng có thể tạo. Trong đó accout và domain được lấy tại file /etc/userdomain
- Thêm vào file mod_sec.conf dòng như sau :
<IfModule mod_security2.c>
SecRuleEngine Off
</IfModule>
- Sau đó tiến hành khởi động lại dịch vụ httpd bằng lệnh /etc/init.d/httpd restart để bắt đầu có tác dụng
Khách hàng có thể tắt mod_security cho tài khoản thông qua ssh như sau :
- Truy cập vào file mod_sec.conf bằng lệnh /usr/local/apache/conf/userdata/std/2/{account}/{domain}/modsec.conf nếu thư mục account và domain chưa tồn tại khách hàng có thể tạo. Trong đó accout và domain được lấy tại file /etc/userdomain
- Thêm vào file mod_sec.conf dòng như sau :
<IfModule mod_security2.c>
SecRuleEngine Off
</IfModule>
- Sau đó tiến hành khởi động lại dịch vụ httpd bằng lệnh /etc/init.d/httpd restart để bắt đầu có tác dụng