Пока я понял, что не могу использовать ОБА сегменты URL и строки запроса вместе.
Конечно, вы можете.Попробуйте это в вашей конфигурации:
$config['uri_protocol'] = "PATH_INFO";
Это должно начать работу.Теперь, поскольку CI отказывается от переменной $ _GET и очищает ее, вам необходимо заполнить ее следующим образом:
parse_str($_SERVER['QUERY_STRING'],$_GET);
Теперь единственная реальная проблема заключается в том, что, если у вас включена глобальная фильтрация XSS, вы должны знать, чтовы просто вручную проанализировали строку запроса в глобальной переменной $ _GET.Это означает, что вы не прошли через фильтры XSS.В CI 1.x вы можете получить доступ к фильтру через библиотеку ввода следующим образом:
$myvar = $this->input->xss_clean($_GET['myvar']);
В CI 2.x вы делаете это через библиотеку безопасности следующим образом:
$myvar = $this->security->xss_clean($_GET['myvar']);
Конечно, само собой разумеется, что вы можете расширить класс Controller, добавив метод get()
, который делает все это автоматически, так что вы можете сделать это:
$myvar = $this->get('myvar');