Пошаговая инструкция
Шаг 1
В корень (@app) проекта добавляем .htaccess со следующим содержанием:
- <IfModule mod_rewrite.c>
- Options +FollowSymlinks
- RewriteEngine On
- </IfModule>
- <IfModule mod_rewrite.c>
- # если /admin, то в backend
- RewriteCond %{REQUEST_URI} ^/(admin)
- RewriteRule ^admin/assets/(.*)$ backend/web/assets/$1 [L]
- RewriteRule ^admin/css/(.*)$ backend/web/css/$1 [L]
- RewriteRule ^admin/js/(.*)$ backend/web/js/$1 [L]
- RewriteCond %{REQUEST_URI} !^/backend/web/(assets|js|css|js)/
- RewriteCond %{REQUEST_URI} ^/(admin)
- RewriteRule ^.*$ backend/web/index.php [L]
- RewriteCond %{REQUEST_URI} ^/(assets|css|js|images)
- RewriteRule ^assets/(.*)$ frontend/web/assets/$1 [L]
- RewriteRule ^css/(.*)$ frontend/web/css/$1 [L]
- RewriteRule ^js/(.*)$ frontend/web/js/$1 [L]
- RewriteRule ^images/(.*)$ frontend/web/images/$1 [L]
- RewriteRule ^(.*)$ frontend/web/$1 [L]
- RewriteCond %{REQUEST_URI} !^/(frontend|backend)/web/(assets|css|js)/
- RewriteCond %{REQUEST_URI} !index.php
- RewriteCond %{REQUEST_FILENAME} !-f [OR]
- RewriteCond %{REQUEST_FILENAME} !-d
- RewriteRule ^.*$ frontend/web/index.php
- </IfModule>
Где admin - путь к @backend/web, его можно заменить на то, что вам больше нравится, например: administrator, cms-admin или ya-admin)
Шаг 2
В папку @frontend/web добавляем файл .htaccess со следующим содержанием:
- RewriteEngine on
- # если это папка или файл, открываем его
- RewriteCond %{REQUEST_FILENAME} !-f
- RewriteCond %{REQUEST_FILENAME} !-d
- # в противном случае перенаправляем на index.php
- RewriteRule . index.php
Шаг 3
В файле @frontend/config/main.php в элемент components массива добавляем:
- 'request' => [
- 'baseUrl' => '',
- ],
- 'urlManager' => [
- 'enablePrettyUrl' => true,
- 'showScriptName' => false,
- 'rules' => [
- '' => 'site/index',
- '<controller:\w+>/<action:\w+>/' => '<controller>/<action>',
- ],
- ],
Получится что-то вроде (более подробный пример):
- <?php
- //...
- return [
- //...
- 'components' => [
- //...
- 'request' => [
- 'baseUrl' => '',
- ],
- 'urlManager' => [
- 'enablePrettyUrl' => true,
- 'showScriptName' => false,
- 'rules' => [
- '' => 'site/index',
- '<controller:\w+>/<action:\w+>/' => '<controller>/<action>',
- ],
- ],
- //...
- ],
- //...
- ];
Шаг 4
В папку @backend/web добавляем файл .htaccess со следующим содержанием:
- RewriteEngine on
- # если это папка или файл, открываем его
- RewriteCond %{REQUEST_FILENAME} !-f
- RewriteCond %{REQUEST_FILENAME} !-d
- # в противном случае перенаправляем на index.php
- RewriteRule . index.php
Шаг 5
В файле @backend/config/main.php в элемент components массива добавляем:
- 'request' => [
- 'baseUrl' => '/admin',
- ],
- 'urlManager' => [
- 'enablePrettyUrl' => true,
- 'showScriptName' => false,
- 'rules' => [
- '' => 'site/index',
- '<controller:\w+>/<action:\w+>/' => '<controller>/<action>',
- ],
- ],
Готово)
Источник:
Перейти