Yii2 自动将未登录用户重定向到登录页面

Yii2 自动将未登录用户重定向到登录页面,yii2,access-control,Yii2,Access Control,目前我有一个问题,没有登录的用户可以访问该网站,如果他们输入一个特定的URL 我的站点控制器如下所示: class SiteController extends Controller { public function behaviors() { return [ 'access' => [ 'class' => AccessControl::className(),

目前我有一个问题,没有登录的用户可以访问该网站,如果他们输入一个特定的URL

我的站点控制器如下所示:

class SiteController extends Controller
{
    public function behaviors()
    {
        return [
            'access' => [
                'class' => AccessControl::className(),
                'only' => ['logout'],
                'rules' => [
                    [
                        'actions' => ['logout', 'index'],
                        'allow' => true,
                        'roles' => ['@'],
                    ],
                    [
                        'actions' => ['login'],
                        'allow' => true,
                        'roles' => ['?'],
                    ],
                ],
            ],
            'verbs' => [
                'class' => VerbFilter::className(),
                'actions' => [
                    'logout' => ['post'],
                ],
            ],
        ];
    }
    [...]
}
这不起作用,用户仍然可以访问该网站

另一个警告:登录页面是一个不同的URL,而我的网站是

对于
actionIndex
它可以工作:

public function actionIndex()
    {
        if (!Yii::$app->user->isGuest) {
            return $this->render('index');
        }
        else {
            //$this->callback();
            $this->redirect('https://login.mywebsite.com');
        }
    }

如果未登录,我希望这是默认设置。

尝试从
公共函数行为()中删除
'only'=>['logout'],
,或添加
'index'

仅关于以下内容的文档:

  • @此筛选器应应用于的操作ID的var数组列表。如果未设置此属性,
    • 然后,筛选器将应用于所有操作,除非它们列在[[除外]]中