Только что сделал вторую точку входа в своем проекте. Проект интенсивно использует УРЛ менеджер, настолько интенсивно, что я создал хтаксес файл как в мануале, только модифицировал его когда добавил вторую точку входа:
Options +FollowSymLinks
IndexIgnore */*
RewriteEngine on
# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule admin.* backend.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php
То есть все запросы вида /admin* обрабатывает файл backend.php
Отдельный конфиг был создан посредствоим копировния основного и добавления нужных урлов:
'urlManager'=>array( 'urlFormat' => 'path', 'urlSuffix' => '.html', 'showScriptName' => false, 'rules' => array( ................................................................................ '/admin' => 'admin/index', ), ),
В обоих конфигах стоит:
'user'=>array( 'allowAutoLogin' => true, 'loginUrl' => '/user/login' ),
В UserController::actionLogin:
public function actionLogin()
{
$form=new LoginForm;
// collect user input data
if(isset($_POST['LoginForm']))
{
$form->attributes=$_POST['LoginForm'];
// validate user input and redirect to previous page if valid
if($form->validate())
$this->redirect(Yii::app()->user->returnUrl);
}
// display the login form
$this->render('login',array('form'=>$form));
}
Тестируем так:
-
обращаемся к чему-то. что требует логина в фронтенде, редиректимся на стираницу логина, псоле успешного логина нас перебрасывает куда надо
-
Производин аналогичные действия для пути /admin.html - редиректимся в итоге в админку.
Все красиво, все работает.
Quote
открываю localhost/login.html - urlReferrer пустой, returlUrl равен index.php
Ну и правильно, первая страница, которую ты открыл - это ж логин, так что редиректить тебя некуда ![]()
Quote
Опять все правильно
Quote
А вот это ооочень странно ![]()
Я добился редиректа с админки на логин вот так:
public function accessRules()
{
return array(
array('allow', // allow admins to perform the following actions
'actions'=>array('index'),
'users'=>array('@'),
),
array('deny', // deny everything that was not allowed
'users'=>array('*'),
),
);
}
У меня просто в приложении пока что групп пользователей нет - только обычные и залогиненные.