3

我在 Yii 中收到太多重定向错误。

我使用的是 Yii 提供的默认 accessControl 过滤器。

整个应用程序在我使用 WAMP 的本地主机上完美运行。在我上传到登台服务器后,问题开始出现。

据我所知,我已经配置了 .htaccess 文件

Options +FollowSymLinks
IndexIgnore */*

<IfModule mod_rewrite.c>
RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^.*$ /index.php [L] 
</IfModule>

如果我尝试打开不需要登录的任何操作,它会毫无故障地打开

public function accessRules()

{

    return array(

        array('allow', // allow all users to perform 'index' and 'view' actions

            'actions' => array('index', 'locationImport', 'contact'),

            'users' => array('*'),

        ),

        array('allow', // allow authenticated user to perform 'create' and 'update' actions

            'actions' => array('LocationImport'),

            'users' => array('@'),

        ),

        array('allow', // allow admin user to perform 'admin' and 'delete' actions

            'actions' => array('admin', 'delete'),

            'users' => array('admin'),

        ),

        array('deny', // deny all users

            'users' => array('*'),

        ),

    );

}

在上述控制器中,联系人正在工作。

我的 main.php 相关

'user' => array(
        // enable cookie-based authentication
        'allowAutoLogin' => true,
        'loginUrl' => array('/useraccount/login'),
        'class' => 'CPWebUser',
    ),

UserAccountController 中的访问规则

 public function accessRules()
{
    return array(
        array('allow', // allow all users to perform 'register' and 'login' actions
            'actions' => array('register', 'login', 'view', 'xxxx', 'xxxx',),
            'users' => array('*'),
        ),
        array('allow', // allow authenticated user to perform 'create' and 'update' actions
            'actions' => array('update', 'logout', 'home', 'changePassword'),
            'users' => array('@'),
        )
        array('deny', // deny all users
            'users' => array('*'),
        ),
    );
}

只是总结一下。完全适用于本地主机。站点控制器 Actioncontact 有效。userAccountController 中的任何操作都不起作用。甚至没有注册,它重定向到登录。actionLogin 打不开。

4

1 回答 1

0

已解决:这是一个愚蠢的错误。经过几个小时的工作,由于拼写错误,问题得到了解决。

在 linux 上,main.php 配置区分大小写,我在 Windows 上编程,但它不是。

我的控制器是 userAccount 和

'loginUrl' => array('useraccount/login'),

刚改成

'loginUrl' => array('userAccount/login'),
于 2013-04-15T20:11:33.140 回答