Как apache отображает http://www.example.com/index.php/abc/def на index.php? - PullRequest
0 голосов
/ 16 декабря 2009

URL-адреса php фреймворка Codeigniter выглядят так, как указано выше.

Я удивлен, что apache отображает этот запрос на index.php в корневом каталоге сервера. Я ожидал, что он интерпретирует /index.php/abc/def как файл 'abc' в каталоге /index.php/abc, и в результате 404 Not Found (учитывая, что такого файла не существует)

Может кто-нибудь объяснить, почему вместо этого выполняется index.php? Существует ли документ, который объясняет стратегию apache «запрос карты к ресурсу», которая объясняет вышеупомянутое наблюдение?

Ответы [ 2 ]

3 голосов
/ 16 декабря 2009

Поскольку, когда он смотрит в корневую папку, он видит, что index.php - это файл, а не папка, поэтому он выполняет этот файл, а не ищет внутри него (если это был каталог) следующий элемент пути.

Остальная часть «пути» становится нетрадиционной строкой запросов

2 голосов
/ 16 декабря 2009

index.php - это фактический файл в корне документа вашего проекта. Фреймворк настроен на маршрутизацию всех запросов к этому файлу. Он также обычно называется файлом начальной загрузки. Файл начальной загрузки отвечает за запуск вашего приложения и, в конечном итоге, получение вашего запроса, куда он должен идти.

В платформе есть маршрутизатор, который принимает URI, все после index.php, а затем сопоставляет его с комбинацией контроллер / действие.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...