Несколько месяцев назад я задал вопрос о SO, связанный с проблемой маршрута.
CodeIgniter устраняет проблемы для доступа к папкам внешнего интерфейса и внутреннего интерфейса.
После добавления ответа в мой код моя проблема была решена.
Теперь я создал контроллер с именем Menu_controlle в папке frontend и создал файл services.php внутри frontend для просмотра.
Menu_control
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Menu_control extends CI_Controller {
public $current_date;
function __construct()
{
parent::__construct();
$this->load->helper('form');
$this->load->helper('url');
date_default_timezone_set('Asia/Kolkata');
$this->current_date= date('d-m-Y H:i:s');
}
public function index()
{
$this->load->view('frontend/home');
}
public function services()
{
$this->load->view('frontend/services');
}
}
?>
Я добавил в меню
<li><a href = "<?php echo site_url('Menu_control/services');?>">Our Servces</a></li>
Теперь, когда я нажимаю на наше сервисное меню, появляется ошибка «объект не найден».

Может ли кто-нибудь знать, что я получаю эту ошибку?
Файл .htaccess пуст.
@JavierLarroulet, да, я свой вопрос редактировал. У меня такое же имя.
ой окей ... а вид существует? 404 может быть либо для контроллера (что, похоже, не так), либо для представления. Создан ли PHP-файл для представления в views/frontend/services?
Да, файл view / frontend / services существует в представлении. Даже моя функция индекса работает, но не может получить доступ к другой странице. Если я использую публичную функцию index () {$ this-> load-> view ('frontend / services'); } Тогда это работает






попробуйте PrettyURL для вашего проекта. напишите следующий код в файле .htaccess
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
или вы также можете использовать следующий базовый URL-адрес codeigniter
{{domain}}/index.php/{{controller_name}}/{{method_name}}
Спасибо за ответ, я добавил ваш код в htaccess и получаю сообщение об ошибке 404 Страница не найдена Запрошенная страница не найдена.
попробуйте базовый URL-адрес, как я предоставил
Я пробовал локальный / имя папки / Menu_control / services, это дает мне ошибку, чем я пробовал локальный / имя папки / index.php / Menu_control / services, то также та же ошибка.
затем проверьте имя файла и имя класса в этом файле, что оба должны быть одинаковыми. если все еще не работает, попробуйте что-нибудь сбросить печать и выйти; в функции __cunstruct, чтобы проверить, работает ли класс.
Название класса такое же. Я добавил exit (); в __construct, и теперь он работает, каков следующий процесс?
теперь вы должны понять, в чем заключаются ваши ошибки. (может быть в глобальной переменной)
Мой помощник - $ autoload ['helper'] = array ('form', 'url', 'file');
если у вас уже есть форма автозагрузки и URL-адрес, то почему вы снова пытаетесь загрузить его в конструкторе? убери это.
Снимаю сейчас. @Vrushabh, я просто хочу узнать код htaccess. У меня есть два файла htaccess: один находится внутри приложения, а другой - вне проекта. Я добавил ваш код вне проекта
Что касается файлов, недоступных в папке приложения, это связано с тем, что файл .htaccess в этой папке запрещает любой доступ в целом. Чтобы предотвратить непреднамеренное раскрытие файла.
Да, отказать файлу. Даже моя функция индекса работает, но не может получить доступ к другой странице. Если я использую публичную функцию index () {$ this-> load-> view ('frontend / services'); } Тогда это работает
Не раньше. Я все еще сталкиваюсь с той же проблемой.
попробуйте следующий код в файле .htaccess вашей корневой папки.
RewriteEngine on
RewriteBase /folder_name/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !^(index\.php|style)
RewriteRule ^(.*) index.php?/$1
Замените имя_папки именем папки вашего проекта.
ОБНОВЛЕННЫЙ ОТВЕТ
Структура папок и файл Menu_control.php.
У меня это работает. Файл .htaccess корневой папки содержит код, который я предоставил ранее.
Обновлен файл htaccess с именем папки
RewriteEngine on
RewriteBase /project/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !^(index\.php|style)
RewriteRule ^(.*) index.php?/$1
Спасибо за ответ, я добавил ваш код в htaccess, но все равно получаю ту же проблему
Какой htaccess вы обновили? Есть два файла .htaccess: один находится в папке приложения, а другой - вне папки приложения (т. Е. В корневой папке).
Да, обновил root htaccess, который находится за пределами папки приложения
Не знаю, почему у меня это не работает. Можете ли вы поделиться своим кодом htaccess с именем папки?
@ user9437856..Да, я обновил ответ. Вы, конечно, можете его изучить.
Дайте мне время, чтобы внедрить ваш код .. Скоро ответим
@ user9437856 .. Нет, это не совсем так.
Не знаю, почему у меня это не работает. Я удаляю CI и снова загружаю, а затем попробую ваш код. Так что дай мне немного времени. Я сообщу вам. Пожалуйста
@ user9437856 .. да, сделайте новую установку.
Я попробовал ваш код после новой установки, но все еще не работал. Можете ли вы поделиться изображением папки контроллера?
@ user9437856..Ладно, тогда зайдите по URL как "base_url / index.php / menu_control / services". Посмотрите, работает ли он.
У меня есть папка backend и frontend, а также на контроллере. Если я напрямую вызываю Menu_control, он работает, но если я добавляю backend / Menu_control, он не работает. Это путь к моей папке изображений i.stack.imgur.com/frkdG.png Я обновил имя контроллера с menu_controler на Access_control
Имя класса должно соответствовать имени файла контроллера. Если класс
Menu_control, файл должен бытьMenu_control.php, а неMenu_controlle.php.