Kind sirs, Tôi đang sử dụng Codeigniter để tạo blog. Tôi có thể cần một cách để chuyển hướng lỗi 404 vào trang 404 tùy chỉnh. Giống như trang 404 của Abduzeedo.com. Có thể kiểm soát điều này bằng cách sử dụng tuyến đường không? Hoặc tôi nên sử dụng bộ điều khiển để chuyển hướng nó sang chế độ xem khác? Cảm ơn rất nhiều!Tôi làm cách nào để chuyển hướng Lỗi 404 trong trang 404 tùy chỉnh bằng Codeigniter?
Trả lời
có một cách khác mà tôi sử dụng: bằng cách ghi đè lớp lõi của Codeigniter ngoại lệ. Trước tiên, hãy đảm bảo tiền tố của tệp cấu hình (system/application/config/config.php) của bạn là như sau $config['subclass_prefix'] = 'MY_';
Sau đó tạo tệp có tên MY_Exceptions.php trong hệ thống/ứng dụng/thư viện. Sau đó ghi đè hàm function show_404() ở đây như sau.
class MY_Exceptions extends CI_Exceptions{
function MY_Exceptions(){
parent::CI_Exceptions();
}
function show_404($page=''){
$this->config =& get_config();
$base_url = $this->config['base_url'];
$_SESSION['error_message'] = 'Error message';
header("location: ".$base_url.'error.html');
exit;
}
}
Bây giờ Bộ điều khiển lỗi sẽ là trang lỗi của bạn, trang sẽ được chuyển hướng đến lỗi 404.
Đối với một giải pháp đơn giản, đi đến tập tin "error_404.php" của bạn trong "ứng dụng lỗi//" thư mục và đặt mã này vào lúc bắt đầu của tập tin:
header("Location:".base_url());
Nó sẽ redirect 404 trang đến trang chủ.
Giải pháp đơn giản.
Tạo lỗi tùy chỉnh hoặc trang Không tìm thấy trong chế độ xem.
Tạo bộ điều khiển cho trang lỗi. Trong hàm chỉ mục sẽ tải chế độ xem trang lỗi mà bạn đã tạo ở bước trước đó.
Bây giờ, bạn Tới application/config/routes.php
bạn nên tìm $route['404_override'] = '';
của các ''
nghĩa gọi của nó các trang báo lỗi mặc định.
Bây giờ, hãy đặt tên bộ điều khiển của bạn cho trang lỗi.
Nó sẽ hoạt động.
Giả sử Trình điều khiển của tôi cho trang lỗi là 'error'
. và xem trang là 'notfound'
.
Vì vậy, mã cho Error.php
điều khiển sẽ là:
<?php
class Error extends CI_Controller
{
function index()
{
$this->load->view('notfound');
}
}
Bây giờ, tôi thay thế $route['404_override'] = '';
-$route['404_override'] = 'error';
trong application/config/routes.php
.
Tuỳ chỉnh 404 trang là tạo ra bằng cách sử dụng các sau 3 bước,
Bước 1: Đầu tiên các tuyến đường mở.php trong application/config và thiết lập một tên điều khiển tùy chỉnh,
$route['404_override'] = 'my404'; //my404 is class name.
Bước 2: Tạo một bộ điều khiển mới và viết đoạn mã sau vào nó. Mã này rất dễ hiểu. Vì vậy, tôi sẽ không giải thích nó ở đây,
<?php
class my404 extends CI_Controller
{
public function __construct()
{
parent::__construct();
}
public function index()
{
$this->output->set_status_header('404');
$data['content'] = 'error_404'; // View name
$this->load->view('index',$data);//loading in my template
}
}
?>
Bước 3: Tạo một file quan điểm với tên 'error_404.php' với thông điệp tùy chỉnh của bạn.
Bạn muốn hiển thị trang 404 tuỳ chỉnh của mình khi không tìm thấy trang trong trang web của bạn, bạn chỉ cần thay thế tệp tùy chỉnh của mình trên tệp lõi nằm ở application/error/error_404.php
chỉ cần thay thế tệp của bạn tại đây. phương pháp bằng cách sử dụng routes
và bộ điều khiển tùy chỉnh cho bạn tùy chỉnh 404 page
. Nhưng cách ngắn nhất và dễ nhất là thay thế tệp lõi bằng tùy chỉnh 404error page
tệp
Mở routes.php đầu tiên trong thư mục ứng dụng/cấu hình và đặt tên bộ điều khiển tùy chỉnh.
$route['404_override'] = 'custom404'; //custom404 is class name.
Tạo bộ điều khiển mới và viết mã sau vào đó. Mã này rất dễ hiểu. Vì vậy, tôi sẽ không giải thích nó ở đây.
<?php
class custom404 extends CI_Controller
{
public function __construct()
{
parent::__construct();
}
public function index()
{
$this->output->set_status_header('404');
$data['content'] = 'error_404'; // View name
$this->load->view('index',$data);//loading in my template
}
}
?>
Tạo tệp chế độ xem có tên 'error_404.php' bằng thông điệp tùy chỉnh của bạn. Đó là tất cả những gì bạn cần làm và sẽ có trang 404 tùy chỉnh của bạn ngay bây giờ.
giải phápRất rất rất rất đơn giản hơn ...
Chỉ cần chỉnh sửa /application/views/error_404.php
với tùy chỉnh của bạn trang 404 :)
Bạn không cần phải tạo ra bất kỳ điều khiển hoặc thay đổi mã, chứ không phải là sửa đổi một tập tin xem . Chỉ cần đặt HTML trang 404 của bạn vào tệp application/views/errors/html/error_404.php
.
Nếu bạn muốn sử dụng base_url() hoặc bất kỳ chức năng CodeIgniter nào khác, hãy khởi tạo lớp CI_Controller như mã bên dưới.
<?php
$ci = new CI_Controller();
$ci =& get_instance();
$ci->load->helper('url');
?>
Điều này thực sự là tốt nhất cho tôi. Tôi không thể làm cho bộ điều khiển 404 hoạt động, nhưng điều này cho phép tôi truy cập vào các kiểu máy và quan điểm của mình và làm những gì tôi cần. Cảm ơn. – dgig
Trong CI 2.2 bạn chỉ có thể chỉnh sửa trang của bạn nhưng đối với 3.0 chúng tôi khởi tạo ci_contoller như bạn đã xác định (y) –
- 1. 404 Chuyển hướng Tùy chỉnh
- 2. Nginx - Tùy chỉnh trang 404
- 3. .htaccess chuyển hướng đến trang 404 RewriteRule
- 4. MVC4 Trang 404 tùy chỉnh?
- 5. Lỗi Django 404 tùy chỉnh
- 6. Cách đặt trang 404 tùy chỉnh là chuyển tiếp, không phải chuyển hướng trong Tomcat
- 7. Chuyển hướng HTTP 404
- 8. Codeigniter & PHP - buộc 404?
- 9. Google 404 và .NET Các trang lỗi tùy chỉnh
- 10. Làm cách nào để tạo trang 404?
- 11. Làm thế nào để tạo các trang lỗi 404 tùy chỉnh trong ASP.NET MVC 3?
- 12. Chuyển hướng đến trang 404 lập trình bằng asp.net MVC
- 13. Cách trả lại trang tùy chỉnh 404 của riêng mình?
- 14. Tùy chỉnh 404 sử dụng Spring DispatcherServlet
- 15. Nginx: Trả lại 301 Chuyển hướng khi 404 Lỗi
- 16. Tại sao apache không hiển thị lỗi 404 khi tôi gửi tiêu đề 404 bằng php?
- 17. Mã lỗi 404, 1, 404; 2 etc HTTP là gì?
- 18. ASP.NET MVC Tuỳ chỉnh trang Lỗi (StatusCode 404 ném 500)
- 19. 404 chuyển hướng cho các trang aspx không
- 20. Thực thi mã cho trang tùy chỉnh Django 404
- 21. ứng dụng Facebook được chuyển hướng đến trang 404
- 22. PHP: Làm thế nào để làm của riêng trang 404 không tìm thấy lỗi của tôi
- 23. Trang SharePoint 404
- 24. Trang lỗi tùy chỉnh có mẫu trong CodeIgniter
- 25. chuyển hướng web.xml 404 sang servlet, cách lấy URI gốc?
- 26. Trang web Azure trả về lỗi 404 sau khi thêm miền tùy chỉnh
- 27. ASP.NET/Web.config: customErrors chỉ chuyển hướng trên 404
- 28. Truy cập URL ban đầu trong IIS7 404 trang chuyển hướng
- 29. Cách tạo thông báo 404 tùy chỉnh trong JSF 2.0?
- 30. 404 trang response.redirect vs server.transfer
dude này là gì ............ –