При переносе рабочего сайта с Windows (OpenServer) на Debian нежданно возникла проблема маршрутизацией:
1. При добавлении в config/main.php в 'components'/'urlManager' строки 'showScriptName'=>true выводится ошибка The requested URL /user/login was not found on this server. (url <server>/user/login)
Лог Апача говорит: File does not exist: /var/www/user
Если заремить 'showScriptName'=>true, то все работает, но при этом url <server/index.php/user/login
2. Кроме того, перестало работать $this->redirect('user/login'), но работает $this->redirect($this->createUrl('user/login'))
Помогите, плз, правильно выполнить настройку.
Привожу коды:
.htaccess в корне сайта
Код: Выделить всё
AddDefaultCharset utf-8
Options +FollowSymLinks
IndexIgnore */*
RewriteEngine on
RedirectMatch 403 /\..*$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php
Код: Выделить всё
'urlManager'=>array(
'urlFormat'=>'path',
'showScriptName'=>false,
'rules'=>array(
'<controller:\w+>/<id:\d+>'=>'<controller>/view',
'<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
'<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
),
),
Код: Выделить всё
public function actionIndex()
{
if(appUser()->isGuest) $this->redirect('user/login');
else $this->render('index');
}