0

我有像这样的网址

localhost/abc.com/info/c/q/Best%20Men

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

我想通过删除 c/q/ 并使用非空格 url 来动态重写这些 url。比如像这样

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

但它使用上面的配置给出了找不到页面的错误

4

1 回答 1

1

这条路线是错误的有几个原因:

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

而不是这个,你想要更相似的东西

'info/<q:\w+>' => 'info/c'
于 2012-08-05T13:43:13.380 回答