我遇到CodeIgniter3:404找不到页面
文件:application / controllers / Welcome.php
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Welcome extends CI_Controller {
public function __construct()
{
parent::__construct();
}
public function index()
{
$this->load->view('Welcome_Page');
}
public function tutorial()
{
$this->load->view('Tutorial_Page');
}
public function manual()
{
$this->load->view('Manual_Page');
}
public function forum()
{
$this->load->view('Forum_Page');
}
public function register()
{
$this->load->view('Register_Page');
}
public function login()
{
$this->load->view('Login_Page');
}
}
文件:application / config / autoload / php
$autoload['helper'] = array('url');
文件:application / config / routes.php
$route['default_controller'] = 'welcome';
$route['translate_uri_dashes'] = FALSE;
文件:application / config / config.php
$config['base_url'] = 'http://subdomain.domain.tld';
$config['index_page'] = '';
文件:.htaccess
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
页面加载Welcome_Page,但不加载其他页面。
404 Page Not Found
The page you requested was not found.
在文件夹视图中,存在页面:Forum_Page.php,Login_Page.php,Manual_Page.php,Register_Page.php,Tutorial_Page.php和Welcome_Page.php
非常感谢您的理解!
答案 0 :(得分:5)
试试这个。使用以下代码替换.htaccess代码:YOURPROJECTNAME是您的基本文件夹。例如如果您在本地服务器上并且您的项目名为myproblem,那么将'YOURPROJECTNAME'替换为'myproblem'
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* YOURPROJECTNAME/index.php/$0 [PT,L]
确保.htaccess也是您应用的根目录。
答案 1 :(得分:0)
http://sub.domain.tld/welcome/tutorial
http://sub.domain.tld/welcome/manual
...
但您创建了视图HTML以获取
http://sub.domain.tld/tutorial
http://sub.domain.tld/manual
...
在APPPATH.'config/routes.php'
文件中,在保留路由下,您必须通过以下方式重新路由:
$config[(:any)] = 'welcome/$1'
你需要注意两件事:
(:any)
将在$1
,(:any)
参数的路由必须位于文件末尾,因为
路线将按照定义的顺序运行。较高的路线总是优先于较低的路线。
更多here。检查文档中的整个页面和其他页面。