Codeigniter在此服务器上找不到请求的URL

Emj*_*y23 1 php codeigniter-3

我正在学习Codeigniter,但无法解决遇到的问题。

  • 当用户访问时localhost/reservation/,系统将显示login.php
  • 当用户单击登录按钮时,系统应将用户重定向到系统将显示的另一个视图book.php

一个很好的解释是非常赞赏。

视图

<form class="" method="POST"> 
   <div>
       <button class="btn btn-primary" name="login">Login  </button>
   </div>
</form> 
Run Code Online (Sandbox Code Playgroud)

如您所见,我没有包括用户名和密码输入字段以缩短代码。

控制者

class Reservation extends CI_Controller {
public function _construct()
{
    parent::__construct(;
    $this->load->helper("url");
}

public function index()
{
    if(...some condition...){
        redirect('book');
    }
    $this->load->view('login');
}

public function book(){
    $this->load->view('book');
}
}
Run Code Online (Sandbox Code Playgroud)

我缩短了代码,删除了不必要的代码(以我的观点),以使其更短并直接。

路线

$route['book'] = 'reservation/book';
$route['default_controller'] = 'reservation';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;
Run Code Online (Sandbox Code Playgroud)

.htaccess

<IfModule authz_core_module>
    Require all denied
</IfModule>
<IfModule !authz_core_module>
    Deny from all
</IfModule>
Run Code Online (Sandbox Code Playgroud)

Pra*_*eep 5

.htaccess应该是这样的(删除索引页):

Options +FollowSymlinks -Indexes
RewriteEngine on

DirectoryIndex index.php
RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
Run Code Online (Sandbox Code Playgroud)

.htaccess文件放入应用程序文件夹之外的应用程序文件夹

并这样设置你config.php

$config['base_url'] = 'http://localhost/app_folder/';
$config['index_page'] = '';
Run Code Online (Sandbox Code Playgroud)

现在访问

http://localhost/app_folder/ 
Run Code Online (Sandbox Code Playgroud)

将显示您的登录页面