Перейти к содержимому



Не работает ЧПУ в yii2

#1 WebJunior

WebJunior
  • Пользователь
  • 60 сообщений
  • Репутация: 8
0

Отправлено 30 Январь 2018 - 20:14

Народ такое дело! В yii ЧПУ тупо не работает! Мистика! Я сделал всё как написано в документации, но ничего не работает. Получаю 404-ю ошибку как будто экшен в контроллере не существует.

 

Вот экшен

Screenshot_2.png

 

Вот конфиг
Screenshot_1.png

 

Что ещё нужно не понимаю! То ли лыжи не едут то ли я сума сошёл.

 

Нужно, что бы заработал url в таком формате site.ru/forum/1


 

 

Сообщение отредактировал WebJunior: 30 Январь 2018 - 20:16

  • 0

robot

robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85
Советую обратить внимание на следующее:
  1. Yii2: сортировка по вычисляемому полю
  2. ЛП: Установка Yii2
  3. ЛП: миграции в yii2, работа с базой данных
  4. ЛП: Генерация кода в Yii2
  5. ЛП: Установка сторонних модулей в Yii2

#2 fedornabilkin

fedornabilkin
  • Модератор
  • 1 082 сообщений
  • Репутация: 165

Отправлено 30 Январь 2018 - 22:22

enableStrictParsing => false


  • 0

Надо обсудить предложение. А тут знакосчиталка считает знаки. Про Yii2 написано.



#3 WebJunior

WebJunior
    Topic Starter
  • Пользователь
  • 60 сообщений
  • Репутация: 8

Отправлено 31 Январь 2018 - 01:59

enableStrictParsing => false

 

Так и было изначально. В этом случаи правило чпу просто игнорируется.  


Сообщение отредактировал WebJunior: 31 Январь 2018 - 02:00

  • 0

#4 fedornabilkin

fedornabilkin
  • Модератор
  • 1 082 сообщений
  • Репутация: 165

Отправлено 31 Январь 2018 - 11:50

enableStrictParsing в значении true учитывает определенное число параметров и всегда будет возвращаться 404 ошибка, если параметров больше или меньше. Слишком опасные "Грабли".

Еще мне показалось, что форум в одном контроллере не сделаешь, логично было бы в модуле. А еще лучше использовать готовый модуль форума, например yii2-podium. Я на этот модуль хочу перетащить свой самописный.

 

Может быть в рулсах так попробовать?

'forum/<uid:[[0-9]+>' => 'main/forum'

  • 0

Надо обсудить предложение. А тут знакосчиталка считает знаки. Про Yii2 написано.



#5 WebJunior

WebJunior
    Topic Starter
  • Пользователь
  • 60 сообщений
  • Репутация: 8

Отправлено 31 Январь 2018 - 23:17

@fedornabilkin, Подправил русло(хорошее слово) сделал enableStrictParsing => false. Результат тот же. Правило игнорируется. Работает дефолтный экшен.


Сообщение отредактировал WebJunior: 31 Январь 2018 - 23:17

  • 0

#6 fedornabilkin

fedornabilkin
  • Модератор
  • 1 082 сообщений
  • Репутация: 165

Отправлено 01 Февраль 2018 - 09:29

У меня вот такой конфиг:

        'urlManager' => [
            'enablePrettyUrl' => true,
            'showScriptName' => false,
            'rules' => [
                'forum/<uid:[[0-9]+>' => 'main/forum'
            ],
         ],

Адрес site.ru/forum/1 должен соответствовать этому правилу.

Будет отрабатывать MainController::actionForum(). Добавь в экшн var_dump([1,2,3]);exit; и посмотри, попадает ли туда запрос.


  • 0

Надо обсудить предложение. А тут знакосчиталка считает знаки. Про Yii2 написано.



#7 WebJunior

WebJunior
    Topic Starter
  • Пользователь
  • 60 сообщений
  • Репутация: 8

Отправлено 01 Февраль 2018 - 16:17

@fedornabilkin, да название экшена и контроллера именно такое) Чуть позже освобожусь проверю,что попадает в экшен. 

P.S Поздравляю с первым местом) 


  • 0

#8 WebJunior

WebJunior
    Topic Starter
  • Пользователь
  • 60 сообщений
  • Репутация: 8

Отправлено 01 Февраль 2018 - 23:08

@fedornabilkin, В экшен ничего не попадает. По умолчанию срабатывает просто экшен по умолчанию. То есть по сути все запросы идут к главной странице 


  • 0

#9 fedornabilkin

fedornabilkin
  • Модератор
  • 1 082 сообщений
  • Репутация: 165

Отправлено 02 Февраль 2018 - 09:15

Тогда у меня такие вопросы возникают:

  1. Какой тип приложения установлен, basic или advanced;
  2. Если advanced, то в каком конфиге указываешь правила для urlManager;
  3. В каком контроллере описал actionForum();
  4. Попадает ли туда запрос, если обратиться непосредственно по адресу site.ru/controller/action.

Если advanced, то контроллер должен быть во frontend/controllers/, а правила в frontend/config/main.php


  • 0

Надо обсудить предложение. А тут знакосчиталка считает знаки. Про Yii2 написано.



#10 WebJunior

WebJunior
    Topic Starter
  • Пользователь
  • 60 сообщений
  • Репутация: 8

Отправлено 02 Февраль 2018 - 16:33

@fedornabilkin, Использую шаблон basic. Контроллер main. При обращении к контроллеру напрямую ничего не меняется. Такое впечатление, что в yii закрался какой-то баг. urlManager не работает!


Сообщение отредактировал WebJunior: 02 Февраль 2018 - 16:51

  • 0

robot

robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85

Оформление форума – IPBSkins.ru