[CakePHP] Tạo trang thông báo lỗi error 404

Lỗi 404 (404 error) là một trong các thông báo lỗi rất phổ biến, nhằm thông tin cho người dùng khi một địa chỉ Web không được tìm thấy. Trong bài viết này tôi sẽ hướng dẫn các bạn một số cách để tạo trang thông báo lỗi 404 với CakePHP, nhưng trước tiên chúng ta hãy tìm hiểu những khái niệm cơ bản trước.

1, Lỗi 404 là gì ?

Lỗi HTTP này được chuyển đến trình duyệt thông qua máy chủ Web khi một yêu cầu trang Web không thực hiện được. Lỗi 404 xuất hiện bởi một trang không tồn tại hoặc hạn chế quyền truy cập. Và lỗi này có thể được Webmaster cấu hình lại sao cho thân thiện với người dùng hơn.

Ngoài ra các bạn có thể tìm hiểu thêm về định nghĩa cũng như cách khắc phục lỗi này đối với website qua các bài viết dưới đây:

2, Một số lời khuyên để tạo trang lỗi 404 hợp lý và tốt cho người dùng

Một trang 404 tuỳ chỉnh có thể được vô cùng hữu ích và đôi thậm chí làm giảm đi sự thất vọng của người dùng bằng cách thêm một chút hài hước vào trang thông báo lỗi. Dưới đây là một số đặc điểm mà các nhà thiết kế web cần lưu tâm trước khi tạo một trang báo lỗi 404.

– Hiển thị thông báo cho khách thăm rằng trang họ đang tìm kiếm không có sẵn với một ngôn ngữ thân thiện.

– Giải thích lỗi xáy ra, nếu có thể thì đưa thêm chi tiết và lý do thường xảy ra lỗi (đánh nhầm, nội dung đã bị di chuyển, … ). Giải thích rõ ràng và minh bạch, dễ hiểu cho người dùng.

– Thiết kế trang 404 của bạn có cấu trúc tương tự như trang web chính của bạn để khách truy cập site không cảm thấy rằng họ đã bị ném ra khỏi trang web.

– Hãy chắc chắn rằng bạn có một chuyển hướng đúng trên trang 404 lỗi của bạn và liên kết với tất cả các trang quan trọng hoặc các phần trên trang web của bạn.

– Nếu bạn có một chức năng tìm kiếm trang web, hãy chắc chắn bạn đặt hộp tìm kiếm của bạn trên trang 404. Đó là một cách khác để khách thăm có thể tìm thấy những nội dung mà họ đang cần tìm tại trang web của bạn.

– Bạn cũng có thể thêm một tùy chọn cho người dùng để báo cáo liên kết bị hỏng đến người quản trị website.

– Hãy gợi ý liên kết tới trang chủ hay trang sơ đồ cấu trúc website.

– Có thể liệt kê địa chỉ email để người dùng thông báo lỗi thế nhưng cũng đừng quá trong chờ vào người dùng sẽ bỏ thời gian để thông báo với bạn mà hãy tập trung tự sửa đổi trước.

– Không được cho trang 404 index trên Google.

Nice Error 404 Page

Các bạn có thể tham khảo một số trang lỗi 404 được thiết kế đẹp và độc đáo dưới đây:

3, Tạo trang thông báo lỗi 404 với CakePHP

Đây là phần nội dung chính mà tôi muốn giới thiệu với các bạn, có nhiều cách để tạo trang thông báo lỗi 404. Tôi sẽ hướng dẫn từ cách thông thường đến cách mà chỉ áp dụng cho CakePHP.

a, Sử dụng file .htaccess

Để cấu hình trang báo lỗi 404, bạn có thể sử dụng các công cụ có sẵn của CMS như WordPress hay Joomla. Hoặc nếu không bạn có thể sử dụng .htaccess để tạo trang lỗi 404 tùy biến

ErrorDocument 404 /misc/404page.html

b, Tạo trang thông báo lỗi cho toàn bộ website

Khi người dùng không tìm thấy hoặc truy cập đến những nội dung không cho phép thì cách này sẽ được áp dụng một cách hiệu quả trên toàn bộ website. Cách thực hiện như sau:

+ Vào thư mục app và tạo file app_error.php với nội dung như sau:

<?php
class AppError extends ErrorHandler {
function _outputMessage($template) {
$this->controller->render($template, 'error404');
$this->controller->afterFilter();
echo $this->controller->output;
}
}
?>

+ Tiếp theo bạn vào thư mục app\views\layouts và tạo file error404.ctp với nội dung thông báo lỗi mà bạn muốn hiển thị.

c, Tạo trang thông báo lỗi cho website, controller, action

Vì một số lí do nào đó, nếu bạn muốn khi người dùng nhập sai controller hoặc gõ đúng controller nhưng lại không có action cần tìm thì sẽ hiển thị trang thông báo lỗi thì cách thực hiện như sau:

+ Vào thư mục app\views\errors và tạo lần lượt 3 file là error404.ctp, missing_action.ctpmissing_controller.ctp. Đó là những file tương ứng với từng trường hợp cụ thể mà tôi đã nêu ở trên, bạn chỉ cần thay đổi nội dung phù hợp với các trường hợp đó là được.

4, Tham khảo

Tấn Việt

Tôi lập trang web này để thỏa mãn sở thích viết cái gì đó vui vui khi rãnh rỗi và đồng thời cũng chia sẻ những gì tôi biết hoặc đọc đâu đó trên mạng về Lập trình web. Tôi hi vọng những bài viết này sẽ giúp ích cho các bạn. Thân ái!

You may also like…

4 Responses

  1. Trần Lam says:

    Chưa chịu đóng Water mark cho ảnh hã 😉

  2. hung says:

    mình tạo sao nó trả đc gì..có cần .htcess k bạn

    • Tấn Việt says:

      Thường thì trong trường hợp này mình cũng không cần dùng .htaccess, bạn đã thử theo cách nào (b hay c) ? Bạn nói không trả được gì là sao ? Bạn có thể nói rõ hơn được không ?

  3. thanh says:

    thannk nhé!