Краткая заметка на тему "Как в Yii2 basic убрать web/ из url при помощи .htaccess и правил urlManager'а?"
Создать .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
в папке web в создать .htaccess:
RewriteEngine On RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php
В конфиге web.php указываем это
'urlManager' => [ 'enablePrettyUrl' => true, 'showScriptName' => false, 'enableStrictParsing' => false, 'suffix'=>'.html', 'rules' => [ '<action:(about|contact|login)>' => 'site/<action>', ], ],
в конфиге web.php в 'request' добавляем строчку:
'baseUrl'=> '',
Столкнулся с проблемой отображения стилей и скриптов при выполнении всех шагов, а именно после 'baseUrl'=> ''.
Поскольку я работаю с локальным сервером OpenServer, в настройках → на вкладке Модули → в блоке HTTP была связка Apache и Nginx. Оставляйте только Apache и проблема решится.