我一直在开发基于Yii框架的Web应用程序.
我在尝试制作sef网址时遇到了麻烦.
是)我有的:
配置已设置.
'urlManager'=> array('urlFormat'=>'path','showScriptName'=> false,'rules'=> array(//规则转到此处))
这是用于测试的代码:
echo $this->createUrl('site/test', array('help'=>'me')
$this - 是控制者.
如果我在配置中生活'规则'数组,我就会得到这个/site/test/help/me.我期待这个.
如果
'rules'=>array(
'<controller:\w+>/<action:\w+>' => '<controller>/<action>',
)
Run Code Online (Sandbox Code Playgroud)
我得到/site/test?help=me的也是预期的.
但如果
'rules'=>array(
'<controller:\w+>/<action:\w+>' => '<controller>/<action>',
'<controller:\w+>/<action:\w+>/<help:\w+>' => '<controller>/<action>/<help>',
)
Run Code Online (Sandbox Code Playgroud)
我还在/site/test?help=me.我期望看到/site/test/me
谁能帮助我?
提前致谢.
小智 6
更改规则的顺序并删除<help>.它将自动添加到操作中.所以你的规则应该是这样的:
'<controller:\w+>/<action:\w+>/<help:\w+>' => '<controller>/<action>',
'<controller:\w+>/<action:\w+>' => '<controller>/<action>',
Run Code Online (Sandbox Code Playgroud)
规则的顺序很重要.你需要先把最详细的一个.
问候