Yii2 basic на разделяемом хостинге

Yii2 basic на разделяемом хостинге

При установке на разделяемый хостинг часто нет возможности прописать директиву DocumentRoot чтобы избавиться от префикса /web в URL путях, так как DocumentRoot прописывается только в файле виртуального хоста. Но можно применить альтернативное решение.

  1. Кидаем в корень .htaccess

                <IfModule mod_rewrite.c>
                    Options -Indexes
                    Options FollowSymlinks
                    RewriteEngine on
                    RewriteRule ^(.*)$ web/$1 [L]
                </IfModule>
            
  2. Кидаем в web .htaccess

                <IfModule mod_rewrite.c>
                    Options +FollowSymLinks
                    IndexIgnore */*
    
                    RewriteEngine on
    
                    RewriteCond %{REQUEST_FILENAME} !-f
                    RewriteCond %{REQUEST_FILENAME} !-d
    
                    RewriteRule . index.php
                </IfModule>
            
  3. В web конфиге

                'homeUrl' => '/', // !!!
    
                'components' => [
    
                        'request' => [
                            'cookieValidationKey' => '...',
                            'baseUrl'=>'', // !!!
                        ], ...
    
                        'urlManager' => [
                            'class' => 'yii\web\UrlManager',
                            'showScriptName' => false,
                            'enablePrettyUrl' => true,
                            ...
            

Добавить комментарий


Защитный код
Обновить


Кто на сайте
Сейчас 14 гостей онлайн