我有一个全新的codeigniter安装.我只是想在我的默认控制器中使用一个函数,如下所示:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Welcome extends CI_Controller {
public function index()
{
$data = array(
'title' => 'Welcome',
'description' => 'Welcome Page'
);
$this->load->view('layouts/header',$data);
$this->load->view('home/home');
$this->load->view('layouts/footer',$data);
}
public function contact()
{
$data = array(
'title' => 'Contact Us',
'description' => 'Contact Page'
);
$this->load->view('layouts/header',$data);
$this->load->view('home/contact');
$this->load->view('layouts/footer',$data);
}
}
Run Code Online (Sandbox Code Playgroud)
我已经使用htaccess成功删除了index.php.现在,当我访问example.com/welcome/contact时,它可以工作,但不是example.com/contact/.
为什么这不应该在没有使用路由的情况下默认工作?
在codeigniter中使用路由,这样你就可以为每个路由器重新编写新的uri
$route['contact'] = 'welcome/contact';
Run Code Online (Sandbox Code Playgroud)
并且不要忘记htaccess文件
RewriteEngine on
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)
| 归档时间: |
|
| 查看次数: |
7069 次 |
| 最近记录: |