slusarvitaliy
@slusarvitaliy
Системный администратор

Почему не работает роутинг на Yii2? на OpenServer?

Короче, смотрел уроки, искал в интернете, нашел код роутинга в yii2:
'urlManager' => [
            'class' => 'yii\web\UrlManager',
            'enablePrettyUrl' => true,
            'showScriptName' => false,
            'rules' => [
                '<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',
                '<controller:\w+>/<action:\w+>' => '<controller>/<action>',
            ]
        ],


.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


перенес index.php в корень, настроил пути к css и файлам.
Когда жму на индекс, то путь такой basic/index.php?r=site%2Findex
Когда набираю site/index/ то путь такой basic/site/index
Но когда пытаюсь набрать site/about то путь такой basic/site/about
НО вместо абоут выводится главная страница. И можно что хоч писать в урл, все равно главная страница.
Где я натупил?? Подскажите! Заранее благодарю.
  • Вопрос задан
  • 1651 просмотр
Решения вопроса 1
@Mylistryx
Самое простое решение:
1. В опен-сервере включаете управление доменами Ручное+Автопоиск (можно просто ручное)
2. Добавляете домен (к примеру) test.local, папка для него \basic\web
Перезапускаете сервер и все работает!

Для advanced шаблона я создаю 2 домена, например test.local в папку \advanced\frontend\web и admin.test.local в папку \advanced\backend\web

Такой конфиг позволяет не городить в .htaccess, а использовать дефолтный вариант.

Ну и для проверки очистить массив rules в конфиге UrlManager, т.е. 'rules' => []
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
Добавлю к тому что написал Mylistryx , что бы потом проще на сервер перенести создаем в папке domains папку mysite в ней папку yii и рядом с ней папку public_html весь framework кидаем в yii, все из папки basic/web в public_html.
Далее:
1. В опен-сервере включаете управление доменами Ручное+Автопоиск (можно просто ручное)
2. Добавляете домен (к примеру) mysite .local, папка для него \mysite\public_html
3. Правим пути в index.php, согласно новому расположению
Перезапускаете сервер и все работает!

Таким образом мы выносим фреймворк за пределы публичной папки, что хорошо.
Ответ написан
@maks280795
У Вас есть соответствующий экшн actionAbout() в контроллере SiteController?
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы