404 страница не найдена Codeigniter Controller

#php #apache #codeigniter #ubuntu-12.04

#php #apache #codeigniter #ubuntu-12.04

Вопрос:

У меня есть простое приложение Codeigniter.

Его контроллером по умолчанию является login. Когда приложение открывается в браузере, оно загружает контроллер по умолчанию и его представление. Но когда я собираюсь открыть другую функцию контроллера, она показывает, что страница 404 не найдена.

Это приложение отлично работает на моем локальном компьютере. Но на клиентском сервере в реальном времени возникает эта проблема. Клиент-сервер использует Ubuntu 12.04.

Пример кода

  class Login extends CI_Controller{
        function __construct(){
         parent::__construct();
        }
        function index(){
          $this->load->view('login/index');
        }
}
  

Просмотреть файл:

  <table>
       <tr>
          <td>Username: </td>
          <td><?php form_input('txt_username',set_value('txt_username',isset($row->username)?$row->username:''));?> </td>
       </tr>
       <tr>
          <td>Username: </td>
          <td><?php form_password('txt_username',set_value('txt_username',isset($row->password)?$row->password:''));?> </td>
       </tr>
      <tr>
<td colspan=2>for register click
 <a href=<?php echo site_url('registers/index');?>>Register</a></td>
     </tr>
    </table>
  

Контроллер регистра:

 class Registers extends CI_Controller{
   function __construct(){
     parent::__construct();
   }
   function index(){
    $this->load->view('register/index');
   }
}
  

Когда я нажимаю на ссылку регистрации или другую ссылку в меню, показывающем 404, не найдено.Но на моем компьютере он работает нормально.

Комментарии:

1. ДА. Я проверил. файлы просмотра загружены правильно. Я пробовал это приложение на других серверах. Там это работает хорошо. Но на клиентском сервере это вызывает проблему

2. Я думаю, что код в порядке. Я уверен, что это проблема с сервером.

3. Пожалуйста, покажите свой application/config/routes.php содержимое файла.

4. Я ничего не изменил в routes.php файл, кроме контроллера по умолчанию.

5. Проверьте свой корпус, является ли ваш локальный компьютер Windows, Linux чувствителен к регистру. Это может повлиять на CI_Loader, пожалуйста, убедитесь, что оболочки одинаковы как для класса, так и для имени файла.

Ответ №1:

Вероятно, ваши правила перезаписи неверны.

Ответ №2:

Вы можете проверить два варианта. Во-первых: проверьте, включены ли ваши модули перезаписи или нет. Второе: проверьте ваш файл .htaccess.

Я настоятельно рекомендую проверить второй вариант. Помните, что ваш файл .htaccess будет отличаться в зависимости от сервера размещения.

Комментарии:

1. Это приложение без каких-либо проблем запускается на другом сервере Linux (Ubuntu 12.04). Но проблема возникает на конкретном сервере. И сервер также является сервером Linux (Ubuntu 12.04).

Ответ №3:

В режиме входа в систему у вас есть

<a href=<?php echo site_url('registers/index');?>>Register</a></td>

здесь ссылка имеет ‘registers’, обратите внимание на последнюю ‘s’, а ваш контроллер ‘register’

Это распространенная ошибка 🙂