Yii框架-修改模块URL


Yii framework - Change module URL

我在我的应用程序中有一个名为'admin'的模块,可在/mysite/admin访问。为了提高网站的安全性,我想把这个URL改成一些更难以猜测的东西给普通用户,只有网站管理员才会知道。

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

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

但这只适用于这两个url。

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

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。实际上,您必须检查用户的访问权限,不要试图隐藏您的管理面板

看一下权威指南中的URL管理(参数化路由)。像这样的代码应该可以完成工作:

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

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

尝试添加:

'admin-panel'=>'admin',
'admin-panel/<controller:'w+>'=>'admin/<controller>',
'admin-panel/<controller:'w+>/<action:'w+>'=>'admin/<controller>/<action>',
    '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>',
        )
    ),