Lỗi 404 hàng loạt — các bài viết bỗng báo “không tìm thấy” dù vẫn còn trong quản trị — thường không phải do mất nội dung, mà do quy tắc đường dẫn (permalink) bị lệch. Hay gặp sau khi chuyển host, cập nhật, hoặc sửa file cấu hình. Tin tốt: phần lớn sửa được trong một phút.
Vì sao bài viết báo 404
WordPress dùng “quy tắc viết lại đường dẫn” (rewrite rules) để biến đường dẫn đẹp thành trang thật. Khi quy tắc này lệch — do file .htaccess hỏng/thiếu, do chuyển host, hoặc sau khi cập nhật — đường dẫn không trỏ tới đâu nên báo 404, dù nội dung vẫn còn nguyên.
Cách sửa theo thứ tự
- Lưu lại đường dẫn tĩnh (sửa được khoảng 90% ca): vào Cài đặt → Đường dẫn tĩnh (Permalinks) → Lưu thay đổi — không cần đổi gì. WordPress sẽ làm mới quy tắc và ghi lại
.htaccesssạch. - Kiểm file
.htaccessở thư mục gốc nếu chưa được — nếu thiếu/rỗng/hỏng, đổi tên nó rồi vào Đường dẫn tĩnh → Lưu lại để sinh file mới. - Với WP-CLI: chạy nhanh
wp rewrite flush. - Theo loại máy chủ: Apache cần bật
mod_rewritevà cho phép ghi đè cấu hình; Nginx không có.htaccessnên quy tắc nằm trong cấu hình máy chủ — phần này host lo. - Sau khi chuyển host: cập nhật cả Site URL lẫn Home URL (đừng chỉ đổi một), và kiểm cơ sở dữ liệu còn đường dẫn cũ không (đổi đường dẫn như bài mixed content).
Apache và Nginx khác nhau ở đâu
Cách sửa 404 phụ thuộc loại máy chủ, nên đừng áp dụng máy móc:
- Apache / LiteSpeed (phổ biến ở hosting chia sẻ): quy tắc đường dẫn nằm trong file
.htaccess. Cần bật mô-đunmod_rewritevà cho phép ghi đè cấu hình. Lưu lại Đường dẫn tĩnh là WordPress tự ghi file này. - Nginx (nhiều VPS, host tốc độ cao): không có
.htaccess. Quy tắc nằm trong cấu hình máy chủ và do nhà cung cấp/quản trị server lo. Sửa.htaccesskiểu Apache trên Nginx là vô tác dụng.
Nếu không chắc web mình chạy nền nào, hỏi nhà cung cấp hosting — biết đúng nền giúp bạn khỏi loay hoay sai hướng.
Sai lầm cần tránh
Đừng dán “đoạn .htaccess thần thánh” từ blog cũ thay vì để WordPress tự sinh; đừng sửa quy tắc viết lại kiểu Apache trên máy chủ Nginx (sai nền tảng); và sau khi chuyển host, đừng chỉ đổi Site URL mà quên Home URL — đây là nguyên nhân 404 phổ biến.
Phòng tái diễn
Sau mỗi lần chuyển host hay đổi cấu hình, hãy làm mới quy tắc đường dẫn và kiểm .htaccess; sao lưu file .htaccess; dùng theme con để tránh mất tuỳ chỉnh khi cập nhật. Cần hỗ trợ chuyển host hoặc sửa lỗi điều hướng, xem dịch vụ sửa chữa website.
Bảng kiểm sau khi chuyển host hoặc đổi tên miền
Chuyển host và đổi tên miền là hai thời điểm hay phát sinh 404 hàng loạt nhất. Sau khi chuyển, hãy chạy qua bảng kiểm này:
- Làm mới quy tắc đường dẫn: vào Đường dẫn tĩnh → Lưu, hoặc
wp rewrite flush. - Kiểm
.htaccessđã tồn tại và đúng nội dung mặc định (với host Apache/LiteSpeed). - Cập nhật cả Site URL và Home URL sang tên miền mới — quên một trong hai là nguyên nhân 404 kinh điển.
- Đổi đường dẫn cũ còn sót trong cơ sở dữ liệu (dùng Better Search Replace hoặc WP-CLI, không chạy SQL thô — xem bài mixed content).
- Kiểm
mod_rewrite(Apache) đã bật chưa, hoặc nhờ host cấu hình rewrite cho Nginx.
Đi đủ bảng này gần như xoá sạch mọi lỗi 404 do chuyển nhà, thay vì sửa từng trang một.
Câu hỏi thường gặp
Bài viết 404 nghĩa là tôi mất bài rồi à?
Không. Nếu bài vẫn còn trong quản trị, nội dung vẫn nguyên — chỉ là đường dẫn lệch. Làm mới đường dẫn tĩnh là trở lại.
Vì sao chỉ một số trang 404 còn trang chủ thì không?
Trang chủ thường không phụ thuộc quy tắc viết lại, còn bài/trang con thì có. Khi quy tắc lệch, chỉ các trang con báo 404 — làm mới đường dẫn tĩnh sẽ khắc phục.
