@Pepper1

Перестал работать UrlManager в Yii2. Где искать ошибку?

Перестал работать UrlManager в Yii2. Где искать ошибку?

Дебагер выдает:
exception 'yii\base\InvalidRouteException' with message 'Unable to resolve the request "login".' in Z:\home\yii.one\www\vendor\yiisoft\yii2\base\Module.php:462 Stack trace: #0 Z:\home\yii.one\www\vendor\yiisoft\yii2\web\Application.php(100): yii\base\Module->runAction('login', Array) #1 Z:\home\yii.one\www\vendor\yiisoft\yii2\base\Application.php(375): yii\web\Application->handleRequest(Object(yii\web\Request)) #2 Z:\home\yii.one\www\index.php(12): yii\base\Application->run() #3 {main} Next exception 'yii\web\NotFoundHttpException' with message 'Страница не найдена.' in Z:\home\yii.one\www\vendor\yiisoft\yii2\web\Application.php:112 Stack trace: #0 Z:\home\yii.one\www\vendor\yiisoft\yii2\base\Application.php(375): yii\web\Application->handleRequest(Object(yii\web\Request)) #1 Z:\home\yii.one\www\index.php(12): yii\base\Application->run() #2 {main}

Подскажите , куда рыть?
  • Вопрос задан
  • 701 просмотр
Пригласить эксперта
Ответы на вопрос 2
slo_nik
@slo_nik Куратор тега Yii
В web/.htaccess
RewriteEngine on

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

RewriteRule . index.php

В корень сайта .htaccess
<IfModule mod_rewrite.c>
  Options +FollowSymlinks
  RewriteEngine on
</IfModule>

<IfModule mod_rewrite.c>
   RewriteCond %{REQUEST_URI} ^/.*
   RewriteRule ^(.*)$ web/$1 [L]

   RewriteCond %{REQUEST_URI} !^/web/
   RewriteCond %{REQUEST_FILENAME} !-f [OR]
   RewriteCond %{REQUEST_FILENAME} !-d
   RewriteRule ^.*$ web/index.php

</IfModule>

В urlManager
UrlManager:
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => [
'' => 'site/index',
],

Сайт должен открываться по адресу site.com (главная страница), из адреса убирается web.
Если действие в контроллере SiteController, то в urlManager добавить
'<_a:(login)>' => 'site/<_a>'
Форма логина по адресу site.com/login
Так же может потребоваться указать в конфигурации 'loginUrl'
Пример(данные и пути указывайте свои)
'user' => [
            //'identityClass' => 'app\modules\users\models\Users',
            'identityClass' => app\modules\users\models\Users::className(),
            'enableAutoLogin' => true,
            'loginUrl' => ['users/default/login']
        ],
Ответ написан
Комментировать
@Pepper1 Автор вопроса
Вопрос решен. Накосячил с файлом config/web. Обновил - все заработало...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы