Причина, по которой они это делают, заключается в том, что это мешает вызову контроллеров, функций и параметров.
CI использует строку URI, чтобы сообщить «программе», что делать. Есть режим, который вы можете включить, который делает это:
www.example.com/controller/method/parameter
в это:
www.example.com/?c=controller&m=methods&p=parameter1&yourgetitem=yourgetvalue
Хотя не так красиво, но вы уверены, что МОЖЕТЕ делать с CI все что угодно; это просто требует некоторой настройки.