您好我在我的Web应用程序中面对此通知,该应用程序在godaddy的子域上启动Yii 1.14并且它崩溃了我的应用程序。
未定义的偏移量:0
/home/uname/public_html/some_dir/yii/framework/web/CUrlManager.php(656)
public function __construct($route,$pattern)
{
if(is_array($route))
{
foreach(array('urlSuffix', 'caseSensitive', 'defaultParams', 'matchValue', 'verb', 'parsingOnly') as $name)
{
if(isset($route[$name]))
$this->$name=$route[$name];
}
if(isset($route['pattern']))
$pattern=$route['pattern'];
$route=$route[0];
}
$this->route=trim($route,'/');
$tr2['/']=$tr['/']='\\/';
if(strpos($route,'<')!==false && preg_match_all('/<(\w+)>/',$route,$matches2))
{
foreach($matches2[1] as $name)
$this->references[$name]="<$name>";
}
$this->hasHostInfo=!strncasecmp($pattern,'http://',7) || !strncasecmp($pattern,'https://',8);
答案 0 :(得分:2)
如果您的配置已损坏,则会发生此错误。 检查您的配置:
['components']['urlManager']['rules']
如果您在此位置设置了一个空数组,则会收到报告的错误。
return array(
'components' => array(
'urlManager' => array(
'rules' => array(
'<controller:\w+>/<id:\d+>'
=> '<controller>/view', // fine
array(), // Won't work!!
'<controller:\w+>/<id:\d+>'
=> array(), // Won't work!!
),
)
)
)
请检查documentation并更新到最新版本1.1.15,这是一项重要的安全更新。
答案 1 :(得分:0)
我有同样的错误。在我的情况下,代码重复('urlFormat'=&gt;'路径',),像这样:
'urlManager'=>array(
'showScriptName'=>false,
'urlFormat'=>'path',
'rules'=>array(
'class'=>'application.components.UrlManager',
'urlFormat'=>'path', //duplicate
'showScriptName'=>false,
'rules'=>array(
...
),
),
),
在我的'urlManager'配置中。 我删除了其中一个('urlFormat'=&gt;'路径',)并且错误消失了