我的Yii 1.x应用程序已将UrlManager配置为生成/使用content/show.html
之类的网址:
'urlManager'=>array
(
'class'=>'UrlManager',
'showScriptName'=>false,
'urlFormat'=>'path',
'urlSuffix'=>'.html',
'rules'=>array
(
'<controller:\w+>/<id:\d+>'=>'<controller>/view',
'<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
'<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
'<controller:[\w\-]+>/<action:[\w\-]+>'=>'<controller>/<action>'
)
),
我也覆盖了CUrlManager
- &gt; UrlManager
实施Qiang's solution,允许我使用指向标准an-action-name
的{{1}}路由连字符。
我希望保持这种方式,但我想扩展它,因此对于一个控制器(用于AJAX调用),它不使用anActionName
并生成/使用URL采用以下格式:urlSuffix
。
由于我在正则表达式中完成新手(几乎无知),在我提出要求之前,我还没有进行过很多自己的研究,因为我甚至都不知道,在哪里以及为什么实际上是搜索。
答案 0 :(得分:1)
您始终可以将后缀作为模式的一部分,而不是全局配置
例如:
'ajax/<action:\w+>'=>'ajax/<action>',
'<controller:\w+>/<id:\d+>.html'=>'<controller>/view',
'<controller:\w+>/<action:\w+>.html'=>'<controller>/<action>',
'<controller:\w+>/<action:\w+>/<id:\d+>.html'=>'<controller>/<action>',
'<controller:[\w\-]+>/<action:[\w\-]+>.html'=>'<controller>/<action>',
和ofc删除urlManager配置的后缀部分