Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Yii框架-更改模块URL_Php_Url_Yii - Fatal编程技术网

Php Yii框架-更改模块URL

Php Yii框架-更改模块URL,php,url,yii,Php,Url,Yii,我的应用程序中有一个名为“admin”的模块,可以通过/mysite/admin访问。为了提高网站的安全性,我想把这个URL改成普通用户难以猜到的东西,只有网站管理员知道 我尝试了urlManager规则,但未能获得所需的结果,例如: 'admin-panel'=>'admin/default/index', 'admin-panel/login'=>'admin/default/login' 但这只适用于这两个URL 所以我现在唯一能想到的就是重命名实际的模块。模块名称在整个

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

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

'admin-panel'=>'admin/default/index', 
'admin-panel/login'=>'admin/default/login' 
但这只适用于这两个URL

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

看看权威指南。 像这样的东西应该可以完成这项工作:

array(
  '<_c:(admin\-panel)>/<_a>' => 'admin/default/<_a>',
)
数组(
“/”=>“管理员/默认值/”,
)
但您只是在管理模块中“重命名”您的默认控制器,它仍然可以在您的旧URL下访问。

尝试添加:

'admin-panel'=>'admin',
'admin-panel/<controller:\w+>'=>'admin/<controller>',
'admin-panel/<controller:\w+>/<action:\w+>'=>'admin/<controller>/<action>',
'admin-panel'=>'admin',
“管理面板/”=>“管理/”,
“管理面板/”=>“管理/”,
规则=>数组(
“管理面板”=>“管理”,
“管理面板//”=>“管理//”,
“管理面板/”=>“管理/”,
“管理面板/”=>“管理/”,
)
但它只是别名-您的管理模块仍然可以通过/admin/URL使用。实际上,您必须检查用户的访问权限,不要试图隐藏您的管理面板。

'urlManager'=>数组(
    '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>',
        )
    ),
“urlFormat'=>“路径”, '规则'=>数组( “模块//”=>“/”, “模块//”=>“/”, ) ),
是。它正在工作。但它仍然可以在旧的url中使用。是否有其他方法限制或重定向到指定路径?您可以尝试为“admin”设置一个规则,该规则通过Yii生成错误--我不确定这是否会导致问题,否则通过apache设置一些内容(在引导重写之前在.htaccess中放置一个规则)或重命名模块。是。你是对的。但我想知道是否有任何方法可以隐藏、限制旧路径?好吧,如果请求的模块名为“admin”,您可以解析一条路由并抛出403 CHttpException(禁止)。它将用户重定向到/site/error并显示异常消息。
    '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>',
        )
    ),