В моем приложении Yii 1.x UrlManager настроен для создания / использования таких URL-адресов, как 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
-> UrlManager
реализовать Решение Цян, что позволяет мне использовать переносы маршрутов, то есть an-action-name
что указывает на стандарт anActionName
,
Я хотел бы сохранить это таким образом, но я хотел бы расширить его, поэтому для одного контроллера (используется для вызовов AJAX) он не использует urlSuffix
и генерирует / использует URL в этом формате: ajax/get-published-files
,
Так как я — новичок (почти неосведомленный) в регулярных выражениях, я не проводил большую часть своих собственных исследований, прежде чем спрашивать, потому что я даже не знаю, где и для чего на самом деле искать.
Вы всегда можете сделать свой суффикс частью своего шаблона вместо вашей глобальной конфигурации
например :
'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
Других решений пока нет …