Я столкнулся с проблемой со ссылками на страницы с помощью 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/название компании/ Главная / 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';
надеюсь, этой информации достаточно для помощи.
Спасибо
Если версия вашего codeigniter 3, то имя файла должно начинаться с заглавной буквы.
Далее, вы добавили .htaccess
файл ?? если нет доступа к URL с помощью index.php.
или используйте следующий код для удаления index.php из URL.
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/system.*
RewriteRule ^(.*)$ index.php?/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?/$1 [L]
добавить этот файл в корень с именем .htaccess
Это поможет вам в удалении index.php
в URL
И удалить index.php
в $config
и сделать $config['index_page'] = "";
А также удалить base_url()
, Codeigniter достаточно смелый, чтобы идентифицировать его.
Других решений пока нет …