我遇到了使用codeigniter进行页面链接的问题,当从我的主屏幕导航到另一个名为Live的屏幕时,我收到以下错误:
找不到对象!
在此服务器上找不到请求的URL。关于的链接 引用页面似乎是错误的或过时的。请通知作者 关于错误的那个页面。
如果您认为这是服务器错误,请与网站管理员联系。
错误404
127.0.0.1 Apache / 2.4.7(Win32)PHP / 5.4.24
主屏幕链接:http://127.0.0.1/projects/ 公司名称 /index.php/home
我想要访问的屏幕链接:http://127.0.0.1/projects/ 公司名称 / home / v_Live
home.php控制器(底部):
class Home extends CI_Controller
{
public function __construct()
{
parent::__construct();
$this->load->helper('url');
$this->load->model('m_login');
}
public function index()
{
if($this->session->userdata('isLogin') == FALSE)
{
redirect('login/login_form');
}else
{
$this->load->model('m_login');
$user = $this->session->userdata('username');
$data['level'] = $this->session->userdata('level');
$data['user'] = $this->m_login->userData($user);
$this->load->view('home', $data);
}
--> function index ()
{
function home (){
$this->load->view("home");
$this->load->view("v_Live");
}
function Live (){
$this->load->view("home");
$this->load->view("v_Live"); <----
}
}
}
}
?>
主页视图:
<nav>
<ul>
<li><a href="home.php">Home</a></li>
<li>
<a href="Cloud_Clients.html">Cloud Clients<span class="caret"></span></a>
<div>
<ul>
<li><a href="<?php echo base_url(); ?>home/v_Live">Live</a></li>
<li><a href="PreProduction.html">Pre-Production</a></li>
<li><a href="Clients.html">Client Versions</a></li>
</ul>
</div>
</li>
<li><a href="about.html">About</a></li>
<li><a href="help.html">Help</a></li>
</ul>
</nav>
v_Live屏幕视图:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Live</title>
</head>
<body>
<nav>
<ul>
<li><a href="home.php">Home</a></li>
<li>
<a href="Cloud_Clients.html">Cloud Clients<span class="caret"></span></a>
<div>
<ul>
<li><a href="<?php echo base_url(); ?>>home/v_Live">Live</a></li>
<li><a href="PreProduction.html">Pre-Production</a></li>
<li><a href="Clients.html">Client Versions</a></li>
</ul>
</div>
</li>
<li><a href="about.html">About</a></li>
<li><a href="help.html">Help</a></li>
</ul>
</nav>
<table>
<tr>
<th>ID</th>
<th>Client Name</th>
<th>App Server</th>
<th>Instance Name</th>
</tr>
<?php
foreach($records as $row):
?>
<tr>
<td><?=$row->id?></td>
<td><?=$row->Client Name?></td>
<td><?=$row->App Server?></td>
<td><?=$row->Instance Name?></td>
</tr>
<?php
endforeach;
?>
</table>
</body>
</html>
配置文件:
$config['base_url'] = 'http://127.0.0.1/projects/**companyname**/';
/*
|--------------------------------------------------------------------------
| Index File
|--------------------------------------------------------------------------
|
| Typically this will be your index.php file, unless you've renamed it to
| something else. If you are using mod_rewrite to remove the page set this
| variable so that it is blank.
|
*/
$config['index_page'] = 'index.php';
希望这足以提供帮助。
由于
答案 0 :(得分:2)
如果您的codeigniter版本为3,则文件名应以大写字母开头。
接下来,您是否添加了.htaccess
文件?如果没有使用index.php访问url。
或使用以下代码从url中删除index.php。
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/system.*
RewriteRule ^(.*)$ index.php?/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?/$1 [L]
在root中添加名称为.htaccess
的此文件。这有助于您删除网址中的index.php
然后移除index.php
中的$config
并制作$config['index_page'] = "";
并删除base_url()
。 Codeigniter足以识别它。