Codeigniter Redirect – URI, который вы отправили, имеет запрещенные символы

Когда я пытаюсь перенаправить на другой сайт, я получаю эту ошибку:

Возникла ошибка PHP

Уровень важности: предупреждение

Сообщение: parse_url (/% 22 * * ) [function.parse-url]: невозможно разобрать URL

Имя файла: core / URI.php

Номер строки: 219


Была обнаружена ошибка

Представленный вами URI имеет запрещенные символы.


Это все код, который у меня есть в URI.php

private function _detect_uri() { if ( ! isset($_SERVER['REQUEST_URI']) OR ! isset($_SERVER['SCRIPT_NAME'])) { return ''; } $uri = $_SERVER['REQUEST_URI']; if (strpos($uri, $_SERVER['SCRIPT_NAME']) === 0) { $uri = substr($uri, strlen($_SERVER['SCRIPT_NAME'])); } elseif (strpos($uri, dirname($_SERVER['SCRIPT_NAME'])) === 0) { $uri = substr($uri, strlen(dirname($_SERVER['SCRIPT_NAME']))); } // This section ensures that even on servers that require the URI to be in the query string (Nginx) a correct // URI is found, and also fixes the QUERY_STRING server var and $_GET array. if (strncmp($uri, '?/', 2) === 0) { $uri = substr($uri, 2); } $parts = preg_split('#\?#i', $uri, 2); $uri = $parts[0]; if (isset($parts[1])) { $_SERVER['QUERY_STRING'] = $parts[1]; parse_str($_SERVER['QUERY_STRING'], $_GET); } else { $_SERVER['QUERY_STRING'] = ''; $_GET = array(); } if ($uri == '/' || empty($uri)) { return '/'; } $uri = parse_url($uri, PHP_URL_PATH); // Do some final cleaning of the URI and return it return str_replace(array('//', '../'), '/', trim($uri, '/')); } 

Related of "Codeigniter Redirect – URI, который вы отправили, имеет запрещенные символы"

CodeIgniter проверяет все сегменты URI для запрещенных символов. Это происходит с помощью белых листинговых символов. Какие из них разрешены, можно проверить в /system/application/config/config.php в /system/application/config/config.php $config['permitted_uri_chars'] /system/application/config/config.php $config['permitted_uri_chars'] . allowed_uri_chars – это символы, которые CodeIgniter принимает в вашем URI. Значение по умолчанию установлено на что-то вроде.

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

По умолчанию разрешены только такие: az 0-9~%.:_-

Оставьте пустым, чтобы разрешить все символы, но только если вы сумасшедшие.

%22 подходит для " Вы можете добавить это в список permitted_uri_chars .

Попробуйте это может помочь, но not recommended , в вашем application/config/config.php изменить:

 $config['permitted_uri_chars'] = ''; #keep it blank to allow all characters $config['allow_get_array'] = TRUE; $config['enable_query_strings'] = TRUE; 

Выше решение отлично, кроме второй строки ($config['allow_get_array'] = TRUE;); его не существует. Кстати, я использую систему блогов Open-Blog.info, и я столкнулся с этой проблемой при попытке открыть страницу администратора.