Php 404使用&;在url中

Php 404使用&;在url中,php,yii2,Php,Yii2,我正在用Yi2和xampp建立一个网站,在那里我有一个导航栏 $menuItems = [... ['label' => 'Mitlesen', 'url' => ['/site/uebersicht&seite=1']], ...] 这将导致站点:index.php?r=site%2Fuebersicht%26seite%3D1 这里我得到了错误信息: Not Found (#404) Unable to r

我正在用Yi2和xampp建立一个网站,在那里我有一个导航栏

 $menuItems = [...
                ['label' => 'Mitlesen', 'url' => ['/site/uebersicht&seite=1']],
               ...]
这将导致站点:
index.php?r=site%2Fuebersicht%26seite%3D1

这里我得到了错误信息:

Not Found (#404)
Unable to resolve the request: site/uebersicht&seite=1
当我删除
&seite=1
时,错误消失。
当我打电话给
。。。site/uebersicht&seite=1
直接在浏览器中运行,也可以正常工作。

您正在对url进行url编码,因此&将转换为%26

您需要确保此url上没有url编码

有关url编码字符的引用,请参阅

但是,我不确定如果首先没有“?”,为什么要在查询字符串中加“&”。也许你想交换一下

正确的查询字符串可能如下所示:


htttp://site.com/some/route/?name=sam&country=spain

您只需使用
'url'=>['/site/uebersicht',seite'=>1]
这是一个不正确的查询字符串。你应该把
而不是
&
。所以你的url应该是
/site/uebersicht?seite=1

我想鲁伯特是对的。如果这不起作用,请尝试调用
index.php?r=site/uebersicht%26seite%3D1
,然后
index.php?r=site/uebersicht&seite=1
rupter发现了问题:)我猜这应该是
'url'=>['r'=>'/site/uebersicht','seite'=>1]
但在他的url中他有
?r=/code>否。第一个参数应该没有“r”。然后,此数组由Url::to()()处理。是的,它使用的是“Url”=>['/site/uebersicht',seite'=>1]