4

我必须关闭对 index.php 主页的访问,我使用以下代码修改了 siteController.php:

public function accessRules() {
  return array(
    // allow all users to perform 'index' and 'view' actions *
    array('allow',
      'actions' => array('index','view'),
      'users' => array('admin'),
    ),
    // allow authenticated user to perform 'create' and 'update' actions @
    array('allow',
      'actions' => array('create','update'),
      'users' => array('admin'),
    ),
    // allow admin user to perform 'admin' and 'delete' actions
    array('allow',
      'actions' => array('admin','delete'),
      'users' => array('admin'),
    ),
    // deny all users
    array('deny',
      'users' => array('*'),
    ),
  );
}

因为我必须只为管理员授予访问权限。在此操作之后,我看到重定向正在工作,并且 url 变为index.php/site/login ,但我得到的不是登录/传递ERR_TOO_MANY_REDIRECTS表单。希望你能理解我)

4

3 回答 3

1

我遇到了同样的问题,解决方案是将“错误”操作添加到规则中,允许所有用户访问它。我之所以这样做,是因为在进行更新后它产生了一个错误并且无法访问错误操作。

于 2014-08-29T14:48:00.003 回答
1

我有同样的问题和urlManagerin的问题config/main.php。我的 urlManager 配置是这样的:

'urlManager' => [
    'baseUrl' => $baseUrl,
    'class' => 'yii\web\UrlManager',
    // Disable index.php
    'showScriptName' => false,
    // Disable r= routes
    'enablePrettyUrl' => true,
    'rules' => [
        '<controller:\w+>/<id:\w+>' => '<controller>',
        '<controller:\w+>/<action:\w+>/<id:\w+>' => '<controller>/<action>',
        '<controller:\w+>/<action:\w+>' => '<controller>/<action>',


    ]
]

它必须是

'<controller:\w+>/<id:\d+>' => '<controller>',

它与 RegEx 的关系。这是文档

于 2016-02-04T16:55:09.300 回答
0

login向访问规则添加操作:

['allow', 
 'actions'=>['index','view','login'],
 'users'=>['admin'], 
],
于 2016-02-05T09:51:05.357 回答