Intereting Posts
Как добавить несколько часов в php в формате HH: MM Поиск PHP через вложенный массив для удаления элемента по имени Regex, чтобы избежать двойных кавычек внутри двойных кавычек с preg_replace Как войти в систему cURL с помощью POST и Cookie Можем ли мы сделать перенаправление 302 с помощью javascript? Yii2 Как выполнить группировку условий AND или OR? Скрыть div с определенным классом во время загрузки страницы, а затем показать снова после загрузки Rowspan, если некоторый td содержит одинаковый идентификатор, используя данные jquery json PHP + MySql Cron Job, удалите строки, размер которых превышает 1 час WooCommerce – добавление категории товаров в таблицу заказов Существует ли какое-либо событие «pre login» или подобное? регулярное выражение в php: взять кратчайшее соответствие PHP – Как поймать ошибку «Попытка получить свойство не-объекта» Сообщение об ошибке Php при недопустимом вводе Как отправить PHP-почту на несколько адресов электронной почты, полученных через MySQL-запрос

Периоды, не разрешенные в URI CodeIgniter?

Поэтому, прочитав этот вопрос по версии API, я решил префикс всех моих маршрутов с номером версии:

http://localhost/api/1.0/user/login 

Но когда я делаю исключение в Exceptions Core, он говорит, что маршрут:

 10/UserControll... 

Я пытался избежать периода, но это не сработало. Может ли кто-нибудь повторить эту проблему и подумать о возможном решении?

Это маршрут, который я использую для вышеуказанного:

 $route['1.0/user/(:any)'] = '1.0/UserController/$1'; 

Это мои разрешенные символы URI:

 $config['permitted_uri_chars'] = 'az 0-9~%\.:_\-'; 

 Open libraries/Input.php (system/core/Input.php in CI version 2.0+) and locate function _clean_input_keys($str){, The whole block should look like so: function _clean_input_keys($str) { if ( ! preg_match("/^[a-z0-9:_\/-]+$/i", $str)) { exit('Disallowed Key Characters.'); } return $str; } 

Проверьте, есть ли у этого. в preg_match. Если не добавить его, чтобы ваше регулярное выражение выглядело так:

 /^[a-z0-9:_\/-\.]+$/i 

У вас есть (.) В вашем

 $config['permitted_uri_chars'] = 'az 0-9~%.:_\-'; 

И каково ваше имя контроллера?

Я думаю, у вас должно быть имя контроллера на вашем пути до имени метода.

Что-то вроде этого :

 $route['controller_name/1.0/user/(:any)'] = ... 

Проблема заключается в строке 468 system/core/Router.php . Измените set_directory следующим образом:

 $this->directory = str_replace(array('/', '.'), '', $dir).'/'; 

К этому:

 $this->directory = str_replace(array('/'), '', $dir).'/'; 

У кого-нибудь есть предположение или гангстер о том, почему маршрутизатор удаляет периоды из имен каталогов?