我与yii2(最近在Yii的1.3工作)玩耍和需要帮助的配置/写地址,管理规则我最喜欢的网址,sheme。
如实施例,我想调用从test
动作xmpleController
2个参数。
一个正常的GET请求将是这样的:
?param1=value1¶m2=value2
此刻,我的网址是这样的:
index.php/xmple/test/?param1=value1¶m2=value2
这是URL应该怎么样子:
index.php/xmple/test/param1/value1/param2/value2
这里有我的网址,管理规则:
'urlManager' => [
'enablePrettyUrl' => True,
'showScriptName' => false,
'rules' => [
'<a:\w+>/<b:\w+>/<c:\d+>/<d:\d+>' => 'a/b'
],
],
没有任何人有一个想法,我怎么可以用我最喜欢的URL方案?我想达到我的目标的唯一方法是编辑urlManager规则,但我没有在这方面的经验。也许有人在这里有一些提示给我吗?
谢谢你的帮助!
你开始做你想要的URL格式之前,您需要先了解哪些格式的URL经理Yii2工作时的支持。以及如何创建规则来创建这些格式。
r
代表路线和正常的查询参数来表示与路由相关的查询参数的查询参数。该URL /index.php?r=xmple/test¶m1=100
代表路线xmple/test
和param1
查询参数100
。默认的URL格式不需要URL经理的任何配置和任何Web服务器的设置工作。/index.php/xmple/100
额外的路径是可以代表路线/xmple/100
,并用正确的URL规则xmple/test
查询参数param1
100
。要使用漂亮的URL格式,则需要根据有关的URL看起来应该像实际需求来设计的URL规则集。
这条规则能满足上述声明'xmple/<param1:\d+>' => 'xmple/test',
Read More一下这里
因此,它是不会被显示
index.php/xmple/test/param1/value1/param2/value2
但
index.php/xmple/test/value1/value2
或index.php/xmple/value1/value2
或xmple/test/value1/value2
。
可以yii\web\UrlManager::$rules
配置为与键是所述patterns阵列和值相应routes。
您可以使用规则'xmple/test/<param1:\w+>/<param2:\w+>'=>'xmple/test'
考虑到你将派出匹配任何文字字符参数(等于[a-zA-Z0-9_])
作为参数,这将xmple/test/value1/value2
或'showScriptName' => false,
否则输出index.php/xmple/test/value1/value2
。
如果该规则将被用于单个控制器/动作,也可以如所描述的使用或使用其允许用于多个路由匹配的URL规则parameterized routes。
您可以将您urlManager更改为以下
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => [
'xmple/test/<param1:\w+>/<param2:\w+>'=>'xmple/test'
],
],