Вопрос: Как я могу включить ЧПУ в Yii2. Я хочу убрать index.php и ? из переметров адреса. Какую часть нужно отредактировать в Yii2 для этого?

Ответ:

Я сделал это в Yii2. Включите mod_rewrite для Apache ( примечание: почти на любом хостинге этот модуль включен по умолчанию ). Для Yii2 установленному в basic сделайте следующее.

Создайте файл .htaccess в папке web ( она содается при первоначачальной установке Yii2 ) и в этот htaccess добавьте следующее:


И в файле web.php в ваших настройках Yii2 добавьте ( или отредактируйте ) в разделе components, чтобы было так:


В случае если Yii2 был установлен в advanced шаблоне создавайте .htaccess в папке backend/web и frontend/web, а urlManager добавляйте в файл common/config/main.php

Нюансы:

  • приведенный вариант ЧПУ для Yii2 работает только для Apache
  • в настройках Apache должны быть разрешены .htaccess ( смотрите директиву в настройках домена должно быть AllowOverride All )

Это перевод и компиляция источник здесь.