Я пытаюсь создать новый раздел на сайте, который я создаю, под названием «Уголок Джейми». Поэтому я продублировал контроллер, который у меня уже был для раздела «Об этом сайте …», переименовал файл в JamiesCorner.php и переименовал контроллер в «JamiesCorner». Когда я загружаю страницу (my_site.local / index.php / jamiescorner), я ожидаю увидеть то же содержимое, что и в разделе «Об этом сайте …». Вместо этого я получаю страницу Codeigniter 404. Я много чего перепробовал, но обнаружил, что переименование контроллера (и файла) в Jamies работает. Почему это? Нет ничего явно плохого в названии «JamiesCorner». Так почему Codeigniter отвергает это?
Соглашение об именовании CodeIgniter требует, чтобы только первый символ в файле класса и определение класса были в верхнем регистре. На самом деле, это правило что касается первого персонажа. Что касается остальной части имени, это не правило, но оно влияет на URL.
Используя правила именования, файл должен быть Jamies_corner.php и класс определяется так
class Jamies_corner extends CI_Controller {
URL будет тогда my_site.local/index.php/jamies_corner
CodeIgniter всегда будет заставлять первый символ в верхнем регистре при загрузке контроллера. Но остальная часть имени контроллера будет принята как есть. В чувствительной к регистру операционной системе (Linux всех вариантов) имя файла ДОЛЖНО совпадать, иначе файл не будет найден.
Другими словами, используя файл JamiesCorner.php
а также class JamiesCorner
URL, как минимум, должен быть my_site.local/index.php/jamiesCorner
Вы также можете использовать .../JamiesCorner
но без прописной буквы «С» в «Углу» он будет каждый раз терпеть неудачу.
Других решений пока нет …