2014-09-25 54 views
0

我的Yii 1.x的應用程序UrlManager配置生成/使用的URL像content/show.html變化UrlManager只是一個控制器

'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實施Qiang's solution,這允許我使用路線的連線,即an-action-name指向標準anActionName

我想保留它,但我想擴展它,所以對於一個控制器(用於AJAX調用),它不使用urlSuffix並以這種格式生成/使用URL:ajax/get-published-files

因爲我是一個完整的新手(幾乎無知)在正則表達式中,我沒有進行過很多我自己的研究,之前詢問,因爲我甚至不知道,在哪裏以及爲了實際搜索。

回答

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配置

+0

人,你」的後綴部分真誠! :]謝謝... – trejder 2014-09-25 12:02:53

+1

我試圖找到允許您使用多個後綴的插件,但規則成爲基於它們的後綴/前綴的數組中的數組,但對於只有1個控制器,它似乎有點矯枉過正 – DarkMukke 2014-09-25 12:57:04

相關問題