Пошаговая инструкция
Шаг 1
В корень проекта добавляем .htaccess со следующим содержанием:
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
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /web/index.php
Шаг 2
В папку /web добавляем файл .htaccess со следующим содержанием:
RewriteEngine On RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php
Шаг 3
В файле /config/web.php в элемент components массива добавляем:
'request' => [
// !!! insert a secret key in the following (if it is empty) - this is required by cookie validation
'cookieValidationKey' => 'yYy4YYYX8lYyYyQOl8vOcO6ROo7i8twO',
'baseUrl' => ''
],
//...
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => [
'' => 'site/index',
'<controller:\w+>/<action:\w+>/' => '<controller>/<action>',
],
],
Все, готово)
Возможные ошибки
Если у вас возникла ошибка:
Invalid Configuration – yii\base\InvalidConfigException
yii\web\Request::cookieValidationKey must be configured with a secret key.
То для решения этой проблеммы вы можете установить флаг enableCookieValidation в false, в /config/web.php ($config['components']['request']):
'request' => [
'enableCookieValidation' => false,
'baseUrl' => ''
],
devreadwrite.com



Подборка адаптивных шаблонов для вашей CMS
Статьи по
Как получить и установить HTTPS сертификат на сайта

Комментарии
Респект и уважуха. Заработало, Спасибо, дружище.
ОтветитьВы бы упомянули, что это костыль, а нормальное решение состоит в переносе DocumentRoot в конфигах сервера из корня проекта в папку web. Иначе стоит слететь .htaccess, или конфигам апача выше (отключение overrideAll), или при переходе на nginx - и все внутренности вашего приложения уйдут в открытый доступ.
ОтветитьЯ в хостинге поменял корневой путь. Все работает.
ОтветитьПосле того, как просто расскоментировал 'urlManager' на всех страницах стала 404.
Ответить