Yii2 basic на разделяемом хостинге
При установке на разделяемый хостинг часто нет возможности прописать директиву DocumentRoot чтобы избавиться от префикса /web в URL путях, так как DocumentRoot прописывается только в файле виртуального хоста. Но можно применить альтернативное решение.
-
Кидаем в корень .htaccess
<IfModule mod_rewrite.c> Options -Indexes Options FollowSymlinks RewriteEngine on RewriteRule ^(.*)$ web/$1 [L] </IfModule>
-
Кидаем в web .htaccess
<IfModule mod_rewrite.c> Options +FollowSymLinks IndexIgnore */* RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . index.php </IfModule>
-
В web конфиге
'homeUrl' => '/', // !!! 'components' => [ 'request' => [ 'cookieValidationKey' => '...', 'baseUrl'=>'', // !!! ], ... 'urlManager' => [ 'class' => 'yii\web\UrlManager', 'showScriptName' => false, 'enablePrettyUrl' => true, ...