Как в Yii2 basic убрать web/ из url при помощи .htaccess и правил urlManager'а?

Всем привет!
Сразу скажу, что я искал решение проблемы в гугле, решений много, но ни одно из них не подошло почему-то.
При изучении Yii2 столкнулся с такой проблемой:

нужно получить url domen/controller/action

но любой запрос вида domen/anything перенаправляет на defaultRoute
запросы типа domen/web/controller/action работают нормально

в конфиге web.php сейчас:
'urlManager' => [
			'showScriptName' => false,
			'enablePrettyUrl' => true,
			'rules' => [
				'<controller>/<action>' => '<controller>/<action>'
			]
		],

в корне сайта в .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

в папке web в .htaccess:
RewriteEngine On RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule . index.php

Буду очень признателен в помощи решения проблемы!
  • Вопрос задан
  • 32932 просмотра
Решения вопроса 1
@urfinjazz Автор вопроса
Отвечу на свой вопрос :)
спасибо, Иван, за наводку

.htaccess в web оставляем такой же
.htaccess в корне сайта:
Options +FollowSymLinks
IndexIgnore */*
RewriteEngine on

RewriteCond %{REQUEST_URI} !^/(web)
RewriteRule ^assets/(.*)$ /web/assets/$1 [L]
RewriteRule ^css/(.*)$ web/css/$1 [L]
RewriteRule ^js/(.*)$ web/js/$1 [L]
RewriteRule ^images/(.*)$ web/images/$1 [L]
RewriteRule (.*) /web/$1

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /web/index.php

в конфиге web.php в 'request' добавляем строчку:
'baseUrl'=> '',

Всем спасибо за внимание!
Ответ написан
Пригласить эксперта
Ответы на вопрос 5
IvanCher
@IvanCher
Мысли шире
Если коротко, то вам нужно WebRoot указать не корневую папку с проектом (***/project), а папку web(***/project/web).
Ответ написан
phpnt
@phpnt
Как убрать web в этом видео, как использовать UrlManager в этом
Ответ написан
Rikcon
@Rikcon
У вас php к апачу как прикручен ?
через mod_php или через php-fpm.
Если через php-fpm то скиньте сюда конфиг виртуалхоста, там нужно одну строку поправить.
Ответ написан
@WhoAm7i7
Привет.
Подскажи, столкнулся с этой же задачей, сделал как у тебя прописано в паблике, но выдает 404 ошибку (
Локалка у меня XAMPP
Ответ написан
Yan_Alex
@Yan_Alex
У меня заработало после добавления 'baseUrl'=> '', htaccess остался оригинальным, такой же как у автора в первом посте
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы