Yii框架 - 更改模块URL

时间:2011-08-02 04:55:11

标签: php url yii

我的应用程序中有一个名为“admin”的模块,可以在/ mysite / admin访问。为了提高网站安全性,我想将此网址更改为更难以向普通用户猜测的内容,只有网站管理员才知道。

我尝试了urlManager规则但无法获得所需的结果,例如:

'admin-panel'=>'admin/default/index', 
'admin-panel/login'=>'admin/default/login' 

但这只适用于这两个网址。

所以我现在唯一能想到的就是重命名实际的模块。模块名称在整个应用程序中被引用很多,因此很难做到。有没有其他建议?

4 个答案:

答案 0 :(得分:1)

rules=>array(
    'admin-panel'                            =>'admin',
    'admin-panel/<_c:\w+>/<_a:\w+>/<id:\d+>' =>'admin/<_c>/<_a>/<id>',
    'admin-panel/<_c:\w+>/<_a:\w+>'          =>'admin/<_c>/<_a>',
    'admin-panel/<_c:\w+>'                   =>'admin/<_c>',
)

但它只是别名 - 您的管理模块仍然可以通过/ admin / URL使用。实际上,您必须检查用户的访问权限,不要试图隐藏您的管理面板。

答案 1 :(得分:0)

查看权威指南中的URL Management (Parameterizing Routes)。 这样的事情应该可以胜任:

array(
  '<_c:(admin\-panel)>/<_a>' => 'admin/default/<_a>',
)

但是你只是在管理模块中'重命名'你的默认控制器,它仍然可以在旧网址下访问。

答案 2 :(得分:0)

尝试添加:

'admin-panel'=>'admin',
'admin-panel/<controller:\w+>'=>'admin/<controller>',
'admin-panel/<controller:\w+>/<action:\w+>'=>'admin/<controller>/<action>',

答案 3 :(得分:0)

    'urlManager'=>array(
        'urlFormat'=>'path',
        'rules'=>array(
            'module/<module:\w+>/<controller:\w+>/<action:\w+>'=>'<module>/<controller>/<action>',
            'module/<m:\w+>/<c:\w+>/<a:\w+>'=>'<m>/<c>/<a>',
        )
    ),