Для проектов размещаемых на обычных хостингах с доступом только к одной директории часто приходится сдвигать DOCUMENT_ROOT на один уровень вниз.
Если к хостингу есть доступ по ssh, то создайте симлинк и все заработает, вот так:
ln -s full/path/to/folder/web public_html
В подобной ситуации мы имеем приблизительно такой набор директорий в DOCUMENT_ROOT сервера:
- assets
- config
- controllers
- forms
- models
- …
- web (для Yii2 корень приложения обычно указывает сюда)
Чтобы перенаправить запросы посетителей сайта из текущей корневой директории (DOCUMENT_ROOT) в директорию «web» нам необходимо создать два файла конфигурации сервера (в текущем примере рассматривается Apache):
КОРНЕВАЯ_ДИРЕКТОРИЯ/.htaccessOptions -Indexes Options +FollowSymlinks RewriteEngine On RewriteCond %{REQUEST_URI} ^(.*)$ RewriteRule ^(.*)$ web/$1
Options -Indexes Options +FollowSymlinks RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . index.php
Также следует обновить «baseUrl» проекта. Это можно сделать в файле конфигурации Yii2 (в примере используется шаблон «basic»):
DOCUMENT_ROOT/config/web.php<?php $config = [ // ... 'components' => [ // ... 'request' => [ // ... 'baseUrl' => '', // <---- ВОТ ЭТО // ... ], // ... ], // ... ];
Остальные файлы проекта изменять не требуется, включая «точку входа» — DOCUMENT_ROOT/web/index.php.
Добавить комментарий
Для отправки комментария вам необходимо авторизоваться.