Bài viết WordPress của bạn đang trả về lỗi 404 Not Found? Bạn không biết tại sao điều này xảy ra và làm thế nào để khắc phục? Hãy đọc hướng dẫn chi tiết của chúng tôi để nhanh chóng và dễ dàng xử lý vấn đề này.
Chúng tôi sẽ giải thích chi tiết lý do tại sao điều này xảy ra và cung cấp nhiều cách khác nhau để giải quyết. Bất kể nguyên nhân gây ra lỗi này trên website của bạn là gì, hướng dẫn của chúng tôi sẽ mang lại giải pháp cho vấn đề khó chịu này.
Trước tiên, bạn nên biết rằng mình không đơn độc. Lỗi bài viết trả về 404 Not Found là một vấn đề rất phổ biến đối với người dùng WordPress, tương tự như lỗi 500 Internal Server Error. Vấn đề này thường do một thay đổi nhỏ gây ra nhưng có thể mất thời gian để sửa, đặc biệt nếu bạn là người mới bắt đầu.
Nếu bạn không sử dụng dịch vụ thiết kế web chuyên nghiệp như WebGoc, bạn sẽ phải tự mình giải quyết vấn đề này. Trước khi giải thích cách khắc phục, hãy cùng tìm hiểu nguyên nhân gây ra lỗi này.
Nguyên nhân nào gây ra lỗi 404 Not Found trên bài viết WordPress?
Nguyên nhân phổ biến nhất của lỗi này là khi tệp .htaccess vô tình bị xóa hoặc thiếu. Một nguyên nhân khác có thể là do các quy tắc viết lại (rewrite rules) không đúng. Ngoài ra, còn có thể có các nguyên nhân khác chưa được biết đến hoặc các vấn đề liên quan đến plugin hoặc theme.
Dù bạn đang gặp phải nguyên nhân nào, đã biết hoặc chưa biết, chúng tôi sẽ cung cấp giải pháp chi tiết để xác định và loại bỏ các nguyên nhân gây ra lỗi 404 Not Found một lần và mãi mãi. Hãy bắt đầu thôi!
5 Cách Khắc Phục Lỗi 404 Not Found
Giải pháp pháp nào là đúng sẽ phụ thuộc vào từng trường hợp cụ thể. Giải pháp từng bước của chúng tôi sẽ giúp bạn xử lý vấn đề này nhanh chóng và dễ dàng. Dưới đây là các bước bạn nên thực hiện:
- Sửa Permalinks (Đường dẫn cố định).
- Đảm bảo tệp .htaccess có thể ghi được.
- Đảm bảo tệp .htaccess có quyền truy cập chính xác của WordPress.
- Kiểm tra xem theme của bạn có gây ra lỗi hay không.
- Vô hiệu hóa tất cả các plugin và kiểm tra xem có plugin nào gây ra vấn đề này không.
Thông thường, bước đầu tiên hoặc thứ hai là đủ để khắc phục lỗi này cho hầu hết mọi người. Tuy nhiên, nếu hai bước đó không giải quyết được, hãy tiếp tục với các bước tiếp theo cho đến khi bạn xử lý được lỗi. Hãy cùng phân tích từng bước chi tiết.
Sửa Permalinks
Permalink là một URL cố định, không thay đổi của một bài viết, trang, v.v. Nó không được trùng lặp với bất kỳ liên kết nào khác đang tồn tại. Theo mặc định, permalinks của WordPress bao gồm ID của bài viết.
Bạn có thể thay đổi định dạng của permalinks, ví dụ như bao gồm ngày xuất bản, tiêu đề, v.v. Những loại liên kết này được gọi là pretty permalinks.
Tuy nhiên, có một số yếu tố có thể ngăn permalinks hoạt động bình thường, dẫn đến lỗi 404 Not Found. Chẳng hạn, lỗi này xảy ra khi chức năng mod_rewrite của Apache không hoạt động. Việc đặt lại permalinks có thể giúp khắc phục vấn đề này với Apache.
- Truy cập mục “Đường dẫn cố định” (Permalinks) trong “Cài đặt” (Settings).
- Chọn tùy chọn “Mặc định” (Plain) và nhấn “Lưu thay đổi” (Save).
- Sau đó, kích hoạt lại cài đặt permalinks trước đó và nhấn “Lưu thay đổi” một lần nữa.
Đối với các loại bài đăng tùy chỉnh (custom post types), nếu có hai hoặc nhiều loại bài đăng tùy chỉnh có cùng slug hoặc tiêu đề, bạn sẽ gặp lỗi 404 Not Found. Do đó, hãy sửa vấn đề này và đảm bảo nó không xảy ra lần nữa.
Kiểm tra xem lỗi 404 Not Found đã biến mất hay chưa. Nếu lỗi vẫn còn, hãy tiếp tục với bước tiếp theo.
Đặt lại Tệp .htaccess
Tệp .htaccess có thể được tìm thấy tại thư mục gốc của website bạn. Bạn có thể sử dụng FTP, cPanel, dòng lệnh (command line), hoặc SSH để truy cập. Có hai cách để chỉnh sửa: tải tệp về, chỉnh sửa bằng trình soạn thảo văn bản rồi tải lên thay thế tệp cũ, hoặc chỉnh sửa trực tiếp.
Chúng tôi khuyên bạn nên tạo bản sao lưu đầy đủ của website trước khi thực hiện bất kỳ thay đổi nào. Nếu bạn chưa từng chỉnh sửa tệp .htaccess, bạn chỉ cần xóa tệp này và nhấp vào “Lưu thay đổi” trong mục “Đường dẫn cố định” của “Cài đặt”. WordPress sẽ tự động tạo một tệp .htaccess mới từ đầu và bạn không cần chỉnh sửa gì thêm.
Nếu bạn cần chỉnh sửa, thay thế đoạn mã sau vào tệp .htaccess hiện tại:
# BEGIN WordPress RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] # END WordPress
Trường hợp WordPress chạy trên Subdomain (Tên miền con)
Nếu website WordPress của bạn chạy trên một subdomain, hãy sử dụng đoạn mã sau:
RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] # add a trailing slash to /wp-admin RewriteRule ^wp-admin$ wp-admin/ [R=301,L] RewriteCond %{REQUEST_FILENAME} -f [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^ - [L] RewriteRule ^(wp-(content|admin|includes).*) $1 [L] RewriteRule ^(.*\.php)$ $1 [L] RewriteRule . index.php [L]
Trường hợp WordPress chạy trên Subdirectory (Thư mục con)
Nếu WordPress của bạn được cài đặt trong một subdirectory, hãy sử dụng đoạn mã sau:
RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] # add a trailing slash to /wp-admin RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L] RewriteCond %{REQUEST_FILENAME} -f [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^ - [L] RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L] RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L] RewriteRule . index.php [L]
Lưu ý quan trọng
Nếu bạn đang sử dụng WordPress phiên bản 3.4 hoặc cũ hơn, hãy tham khảo hướng dẫn về .htaccess trên WordPress Codex.
Sau khi bạn cập nhật mã trong tệp .htaccess, lỗi 404 Not Found sẽ biến mất. Nếu lỗi vẫn còn, hãy chuyển sang bước tiếp theo trong hướng dẫn.
Đảm Bảo Tệp .htaccess Có Quyền Truy Cập Chính Xác
Nếu các bước trước không hiệu quả, hãy kiểm tra xem tệp .htaccess có đúng quyền truy cập cần thiết cho WordPress hay không. Quyền truy cập cho tệp này nên được đặt là 644. Bạn có thể thực hiện điều này thông qua cPanel hoặc FTP. Ngoài ra, bạn có thể thử sử dụng SSH với lệnh sau:
find /path/to/your/wordpress/install/ -type f -exec chmod 644 {} \;
Kiểm Tra Theme Có Gây Ra Lỗi Hay Không
Nếu vấn đề vẫn chưa được giải quyết, hãy thử vô hiệu hóa theme hiện tại và bật theme Twenty Seventeen của WordPress.
- Truy cập mục “Giao diện” (Appearance).
- Tìm theme Twenty Seventeen và nhấn “Kích hoạt” (Activate).
Kiểm tra xem lỗi 404 Not Found còn xuất hiện hay không. Nếu lỗi biến mất, nguyên nhân là do theme mà bạn đang sử dụng. Nếu lỗi vẫn còn, hãy tiếp tục với bước tiếp theo.
Vô Hiệu Hóa Tất Cả Các Plugin
Đôi khi, một plugin nào đó có thể gây ra nhiều vấn đề cho trang WordPress của bạn. Nếu các giải pháp trước đó không hiệu quả, hãy:
- Truy cập mục “Plugin”.
- Chọn tất cả các plugin, sau đó nhấn “Ngừng kích hoạt” (Deactivate).
Kiểm tra xem lỗi 404 Not Found còn xuất hiện hay không. Nếu lỗi đã biến mất, hãy kích hoạt lại từng plugin một và kiểm tra xem lỗi xuất hiện trở lại khi nào. Khi lỗi xuất hiện sau khi kích hoạt một plugin cụ thể, đó chính là nguyên nhân gây ra vấn đề.
Lời Kết
Lỗi 404 Not Found trên bài viết là một trong những vấn đề phổ biến nhất của WordPress, nhưng cũng rất dễ giải quyết. Có 5 cách được biết đến để khắc phục lỗi này, và tất cả đã được chúng tôi mô tả chi tiết trong hướng dẫn này.
Giờ đây, bạn chỉ cần áp dụng những gì chúng tôi hướng dẫn vào thực tế. Chúc bạn thành công!