CodeIgniter 2 -仅当用户经过身份验证时显示404页面



我有一个CodeIgniter 2应用程序,目前在用户请求无效URL时返回404页面。在我的MY_controller.php文件中,我有一个检查用户是否经过身份验证的函数。如果用户请求的URL是有效的,并且用户还没有登录,那么他们将被重定向到登录页面。如果他们请求的URL是无效的,无论他们是否登录,他们都会看到一个404页面。

如果用户没有登录,是否有办法将用户重定向到登录页面,即使他们请求一个无效的URL?

有可能。以下步骤

  1. 在控制器目录中创建一个名为Errors的新控制器,代码如下

    defined('BASEPATH') OR exit('No direct script access allowed');
     class Errors extends CI_Controller {
       public function index() {
        redirect('authentication/login');
       }
    }
    
  2. 现在在您的config/routes.php文件$route['404_override']更改如下

    $route['404_override'] = 'errors/index';
    

现在你将重定向时,错误的URL而不是显示404错误页面

  • 如果您想登录用户将看到404错误,但未登录用户将看到登录页面,然后更改Errors控制器中的index方法

     public function index() {
       if($this->session->userdata('user_id')){// check any session item
           show_404();
       }
       redirect('authentication/login');
     }
    
  • 最新更新