Добрый вечер.
Первый .htaccess, который в корне сайта, можно проще сделать.
<IfModule mod_rewrite.c>
Options +FollowSymlinks
RewriteEngine on
</IfModule>
<IfModule mod_rewrite.c>
RewriteCond %{REQUEST_URI} ^/.*
RewriteRule ^(.*)$ web/$1 [L]
RewriteCond %{REQUEST_URI} !^/web/
RewriteCond %{REQUEST_FILENAME} !-f [OR]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ web/index.php
</IfModule>
В web оставить .htaccess по умолчанию.
Если проект находится в поддиректории сервера, то в конфигурации указать такой параметр
$baseUrl = str_replace('/web', '', (new Request)->getBaseUrl());
return [
// параметры конфигурации
'request' => [
'baseUrl' => $baseUrl,
],
// другие параметры конфигурации
]