Yii2 убрать web/frontend/backend

Для advanced шаблона, где структура разделена на frontend/backend убираем web и настраиваем доступ к backend по ссылке /admin
Одно из решений без правки конфига сервера, для этого нужно несколько действий.
Будьте внимательны, если инструкции ниже не сработают — ищите проблему в настройках сервера(mod_rewrite, чпу для nginx и т.д. в зависимости от веб сервера).

В корне сайта создаем .htaccess

Options +FollowSymLinks
IndexIgnore */*
RewriteEngine on

# Если запрос начинается с /admin, то заменяем на /backend/web/
RewriteCond %{REQUEST_URI} ^/admin
RewriteRule ^admin\/?(.*) /backend/web/$1

# Добавляем другой запрос /frontend/web/$1
RewriteCond %{REQUEST_URI} !^/(frontend/web|backend/web|admin)
RewriteRule (.*) /frontend/web/$1

# Если frontend запрос
RewriteCond %{REQUEST_URI} ^/frontend/web
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /frontend/web/index.php

# Если backend запрос
RewriteCond %{REQUEST_URI} ^/backend/web
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /backend/web/index.php

В папках frontend/web и backend/web создаем также .htaccess

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php

Дополнительно: включаем ЧПУ в конфиге main.php

'request' => [
'baseUrl' => '', // для backend соотв. значение /admin
],
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'enableStrictParsing' => false,
'rules' => [
'<controller>/<action>' => '<controller>/<action>',
],
],
Просмотров: 987

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

Ваш e-mail не будет опубликован.

Можно использовать HTML теги:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Перед отправкой формы:
Human test by Not Captcha