Настройка .htaccess и конфигурации для ЧПУ в Yii2 Basic

Настройка .htaccess и конфигурации для ЧПУ в Yii2 Basic

В данной статье рассмотрим вариант настройки ЧПУ для Фреймворк Yii2 Basic.

Что такое ЧПУ в понимании для Web сайта - Человеко Понятный URL или Семантический URL отображающий структуру ссылок из понятных слов вместо системных идентификаторов программного модуля, для примера:

Без ЧПУ

http://site.name/index.php?cat=231&brand=15&prod=1123

С ЧПУ

http://site.name/smart-tv/sony/kdl-40wd653

Как правило ЧПУ отображают из символов латинского алфавита, чисел и некоторых спецсимволов.

.htaccess

.htaccess — файл вспомогательной конфигурации Web сервера Apache, а также подобных ему серверов.

В корне Фреймворк Yii2 Basic необходимо создать файл .htaccess и записать в этом файле следующие директивы.

<IfModule mod_autoindex.c>
	Options -Indexes
</IfModule>

<IfModule mod_rewrite.c>
	Options +SymLinksIfOwnerMatch
	RewriteEngine on

	RewriteCond %{REQUEST_URI} ^/.*
	RewriteRule ^(.*)$ web/$1 [L]
</IfModule>

Потом в директории /web добавляем файл .htaccess и в него записываем:

<IfModule mod_rewrite.c>
	Options +SymLinksIfOwnerMatch
	RewriteEngine On
	RewriteCond %{REQUEST_FILENAME} !-f
	RewriteCond %{REQUEST_FILENAME} !-d
	RewriteRule . index.php
</IfModule>

Конфигурация

Далее в конфигурационном файле /config/web.php в блоке request записываем конфигурацию 'baseUrl' => '', и полностью раскомментируем блок urlManager и запишем правила:

'request' => [
    // ... 
    'baseUrl' => '',
],
 
// ...

'urlManager' => [
	'enablePrettyUrl' => true,
	'showScriptName' => false,
	'rules' => [
        '' => 'site/index', // Для главной страницы
        '<controller:\w+>/<action:\w+>/' => '<controller>/<action>', // Для остальных контроллеров и действий
	],
],

Данного примера вполне достаточно для использования системы из коробки.

В следующей статье будем рассматривать настройку ЧПУ для Yii2 Advanced, а также рассмотрим расширенные настройки правил для urlManager.


Комментарии (0)

    Нет комментариев.
    Чтобы оставить свой комментарий, Вам необходимо авторизоваться. У Вас нет аккаунта? Пожалуйста, пройдите процедуру регистрации.