CodeIgniter 2.1.3 Message: strpos() [function.strpos]: Empty delimiter

这个问题在环境是 development 状态下会报这个错误

提示在URI.php 的 186 和190行

主要原因是 strpos 函数第二个参数为空($_SERVER[‘SCRIPT_NAME’] 为空)

当配置成 CI 从根目录开始匹配的话就会出现。

当SCRIPT_NAME 不为空的时候都以  “/” 开始。那修改下当SCRIPT_NAME 是空的时候,直接用 “/”代替

修改 system/core/URI.php 的186 到194 行 那段的内容:

$script_name = $_SERVER[‘SCRIPT_NAME’] ? $_SERVER[‘SCRIPT_NAME’] : ‘/’;
if (strpos($uri, $script_name) === 0)
{
$uri = substr($uri, strlen($script_name));
}
elseif (strpos($uri, dirname($script_name)) === 0)
{
$uri = substr($uri, strlen(dirname($script_name)));
}

问题就解决了!

发表评论