Мой вопрос с недружелюбным URL-адресом, почему вам все равно, как он выглядит? Это не семантика с точки зрения пользователя. Да, вы должны удалить index.php. В связи с переписыванием URL все это должно быть уменьшено с:
mydomain.com/SurveySystem/index.php/survey/????
до
mydomain.com/survey/
И ваши методы класса CI могут быть сокращены до «взять» или «отправить» и последующего «просмотра».
Сеансы должны управляться с использованием файлов cookie или класса сеансов CI. Если вам нужно отслеживать состояние в URI, объедините свой «сеанс» и «guestID» для конкретного опроса в один сегмент с кодировкой base64.
Наконец, используя предложенный маршрут, приложение не сможет узнать, какой идентификатор опроса загрузить. Это должно было бы захватить ": num" и передать его take_survey:
$route['survey/(:num)'] = "survey/take_survey/$1";
Если вы берете числовые идентификаторы в качестве первого сегмента после / обследования, вам нужен другой маршрут, размещенный после этого, для обработки случая, когда этот сегмент является идентификатором сеанса:
$route['survey/(:num)/(:num)'] = "survey/session_manager/$1/$2";
Где $ 1 и $ 2 - это идентификатор сессии и идентификатор гостя соответственно. Лично я бы сказал, что это плохая форма. Семантическое значение ваших сегментов нарушается: становится трудно определить, что означает этот первый числовой сегмент (идентификатор опроса или идентификатор сеанса), если вы не всегда можете гарантировать, что эти маршруты на месте.