我的应用程序中有一个名为“admin”的模块,可以在/ mysite / admin访问。为了提高网站安全性,我想将此网址更改为更难以向普通用户猜测的内容,只有网站管理员才知道。
我尝试了urlManager规则但无法获得所需的结果,例如:
'admin-panel'=>'admin/default/index',
'admin-panel/login'=>'admin/default/login'
但这只适用于这两个网址。
所以我现在唯一能想到的就是重命名实际的模块。模块名称在整个应用程序中被引用很多,因此很难做到。有没有其他建议?
答案 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>',
)
),