微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – 基本身份验证重定向url修改后

我有一个使用Yii框架制作的网站.我已经使用HTTP身份验证(基本)进行用户登录.它工作正常.在身份验证之后,它会重定向用户配置文件,但是在附加了www部分https之后的url中.eg. https://wwwhttps.example.com/directory/我也尝试使用.htaccess删除https部分,但没有运气.这是我的.htaccess配置:

#Options +FollowSymLinks 
 IndexIgnore */*
 RewriteEngine on
# if a directory or a file exists, use it directly 
 RewriteCond %{REQUEST_FILENAME} !-f 
 RewriteCond %{REQUEST_FILENAME} !-d
# otherwise forward it to index.PHP 
 RewriteRule . index.PHP

#Basic ldap authentication goes here ...

RewriteCond %{HTTP_HOST} ^wwwhttps\.(.*)$[NC] 
RewriteRule ^(.*)$https://%1%{REQUEST_URI} [R=301,QSA,NC,L]

登录控制器代码

public function actionLogin()
    {
        $this->layout='//layouts/login_layout';
        if(isset($_SERVER['REMOTE_USER']) && $_SERVER['REMOTE_USER']!='')
        {
            $username = $_SERVER['REMOTE_USER'];
            $user = User::model()->findByAttributes(array('username'=>$username)); 

            $ui = UserIdentity::impersonate($user->id);
                if($ui)
                    Yii::app()->user->login($ui, 0);
                    $this->redirect(yii::app()->getBaseUrl(true).'/user/profile');    
    }       
 }

是因为基本认证还是其他什么?如果我不使用基本身份验证它工作正常….请帮助我.
提前致谢!!!

解决方法:

将.htaccess ldap身份验证代码更改为,

RewriteCond %{HTTP_HOST} ^www\.(.*)$[NC] RewriteRule ^(.*)$https://%1%{REQUEST_URI} [R=301,QSA,NC,L]

所以整个htaccess看起来如下,

#Options +FollowSymLinks 
 IndexIgnore */*
 RewriteEngine on
# if a directory or a file exists, use it directly 
 RewriteCond %{REQUEST_FILENAME} !-f 
 RewriteCond %{REQUEST_FILENAME} !-d
# otherwise forward it to index.PHP 
 RewriteRule . index.PHP

#Basic ldap authentication goes here ...
RewriteCond %{HTTP_HOST} ^www\.(.*)$[NC] RewriteRule ^(.*)$https://%1%{REQUEST_URI} [R=301,QSA,NC,L]

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐