Правильная настройка htaccess — частая проблема при настрйоке нового приложения. В этой статье — пример рабочего htaccess для yii2-basic шаблона.
Итак, для правильной настройки Вам потребуется выполнить несколько несложных шагов.
1. Настраиваем корневой htaccess. Он должен лежать в корне Вашего приложения — грубо говоря — там, где лежит composer.json.
Options +FollowSymLinks
IndexIgnore */*
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/(web)
RewriteRule ^assets/(.*)$ /web/assets/$1 [L]
RewriteRule ^css/(.*)$ web/css/$1 [L]
RewriteRule ^js/(.*)$ web/js/$1 [L]
RewriteRule ^images/(.*)$ web/images/$1 [L]
RewriteRule (.*) /web/$1
Обратите внимание! Директива Options +FollowSymLinks может быть заблокирована на некоторых хостингах — поэтому в случае возникновения ошибкии 500 — попробуйте закомментировать её, добавив перед ней символ #.
2. Настраиваем htaccess в директории /web.
RewriteEngine On RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php
3. Настраиваем приложение.
В файле config/web.php вносим несколько изменений:
— добавляем в базовые настройки приложения (где указан name Вашего приложения) параметр:
'homeUrl'=>'/'
— в компонент request добавляем параметр:
'baseUrl'=>'/'
— снимаем комментарии с компонента urlManager — в итоге должен получится примерно такой компонент:
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => [],
]
После этих несложных действий сайт будет доступен без дополнительных префиксов в адресной строке — сразу по Вашему доменному имени, например — http://domain.com/.
Если Вам также интересен htaccess для advanced-шаблона — его пример можно найти здесь
Надеюсь статья была полезной — если остались вопросы — добро пожаловать в Комментарии ниже. Удачи!