Уроки по программированию

Убираем /frontend/web/yii2

Настройка url для yii2. Для настройки url нам необходимо выполнить 4 шага.

Шаг 1. Создайте в корневом каталоге файл .htaccess и добавьте следующий код.

<IfModule mod_rewrite.c>
    Options +FollowSymlinks
    RewriteEngine On
</IfModule>
 
<IfModule mod_rewrite.c>
    # deal with admin first
    RewriteCond %{REQUEST_URI} ^/(admin)
    RewriteRule ^admin/assets/(.*)$ backend/web/assets/$1 [L]
    RewriteRule ^admin/css/(.*)$ backend/web/css/$1 [L]

    RewriteCond %{REQUEST_URI} !^/backend/web/(assets|css)/
    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> 

Шаг 2. Создайте в каталоге /frontend/web и /backend/web/ файл .htaccess и добавьте следующий код.

# Если это папка или файл, открываем его
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# В противном случае перенаправляем на index.php
RewriteRule . index.php

Шаг 3. В файл frontend/config/main.php добавляем следующий код

'urlManager' => [
	'enablePrettyUrl' => true,
	'showScriptName' => false,
	//'suffix' => '.html',
	'rules' => [
		'' => 'site/index',
		
		
		'<action>'=>'site/<action>',
	],
], 
'assetManager' => [
	'basePath' => '@webroot/assets',
	'baseUrl' => '@web/assets'
],  
	'request' => [
	'baseUrl' => ''
]

Шаг 4. В файл /backend/config/main.php добавляем следующий код

'urlManager' => [
	'enablePrettyUrl' => true,
	'showScriptName' => false,
	//'suffix' => '.html',
	'rules' => [
		'' => 'site/index',
		'<action>'=>'site/<action>',
	],
], 
'assetManager' => [
	'basePath' => '@webroot/assets',
	'baseUrl' => '@web/assets'
],  
'request' => [
	'baseUrl' => '/admin'
]

На этом все должно заработать

Комментарии к статье

  • Оставьте первый комментарий - автор старался

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *