Здравствуйте!
Пытаюсь в проекте yii2 избавиться от папки web в адресной строке и переходе по ссылкам.
Распишу по шагам, что сделал и чего не получается:
Для начала уточню, что дистрибутив basic лежит в папке localhost, и basic переименован в имя сайта. Короче говоря, в браузере на сайт попадают так:
localhost/sitename/webЧто сделал:
1. В папке web создал .htaccess с содержимым (взято из документации yii):
Options +FollowSymLinks
IndexIgnore */*
RewriteEngine on
# If a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Otherwise forward it to index.php
RewriteRule . index.php
2. В файле config/web.php включаю urlManager в разделе components:
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
],
Теперь ЧПУ работает и можно спокойно настраивать всякие шаблоны, но нужно избавиться от папки web/ в адресной строке браузера. И вот это не получается ни в какую.
Поясню, что я хочу сделать это без редактирования VirtualHost в Apache, желательно только средствами .htaccess и настройками Yii2.
В сети есть несколько советов на эту тему, но ни один у меня не заработал. Очевидно, что нужно создать .htaccess в корне сайта и настроить его так, что бы он отсек web/ из запроса и передал в .htaccess в папке web. В сети бродит такой вариант .htaccess, но повторюсь, он у меня
не работает:
Options +FollowSymLinks
IndexIgnore */*
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/(web)
RewriteRule (.*) /web/$1
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /web/index.php
Еще советуют задать пустой baseUrl в config/web, но тогда вообще все пути рушатся, особенно для подключаемых js и css скриптов.
Что делать? :)