#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’
Это распространенная ошибка 🙂