使用url manager yii php调整自定义URL

时间:2012-08-05 13:28:34

标签: php yii

我有像

这样的网址
localhost/abc.com/info/c/q/Best%20Men

这里info是控制器,c是action,q是查询id。

我想通过删除c / q /并使用非空间网址动态地重写这些网址。比如像这样

localhost/abc.com/info/Best_Men

是否可以使用urmanager ???

我试过这段代码,但它没有工作

'info/c/<q:\d+>'=>'info/<q:\d+>',

[编辑后]

我的配置包含此

'urlManager'=>array(

    'urlFormat'=>'path',
'showScriptName'=>false,
 'caseSensitive'=>false,
    'urlSuffix'=>'.html',    

        'urlFormat'=>'path',
        'rules'=>array(

            'info/<q:\w+>' => 'info/c'

                ),
    ),

如需更多解释,请问我的网址是什么

http://localhost/abc.com/mycontroller/myactionsearch?q=Best

它返回搜索到的项目列表,并点击它打开的任何链接,例如点击最佳男士打开以下链接

http://localhost/abc.com/mycontroller/myactionItem/q/Best%20Men

所以实际上我在同一个控制器中有两个不同的动作,现在我想让它像

一样运行
http://localhost/abc.com/mycontroller/Best%20Men

http://localhost/abc.com/mycontroller/myactionItem/Best%20Men

但它使用上面的配置

给出了找不到页面的错误

1 个答案:

答案 0 :(得分:1)

由于以下几个原因,这条路线是错误的:

  • 与特定查询不匹配(\d表示“数字”,因此与“Best_Men”不匹配)
  • 它不会转发到有效的控制器操作
  • 应该切换这对值

而不是你想要的东西更像

'info/<q:\w+>' => 'info/c'