Как убрать в url ?r=site/index и index.php?
Ответ
Шаг 1: В файл config.php добавить настройки компонента urlManager:
1 2 3 4 |
'urlManager' => [ 'enablePrettyUrl' => true, 'showScriptName' => false ] |
Этот код должен быть в секции components. То есть полный фрагмент выглядит так:
1 2 3 4 5 6 7 8 9 |
... 'bootstrap' => ['log'], 'components' => [ 'urlManager' => [ 'enablePrettyUrl' => true, 'showScriptName' => false, ], 'request' => [ ... |
Тем самым мы добились, чтобы работали ссылки вида http://localhost/basic/web/index.php/site/add.
Шаг2: Скрываем index.php. Для этого в папке web должен находиться файл .htaccess с кодом:
1 2 3 4 5 6 7 8 |
Options +FollowSymLinks IndexIgnore */* RewriteEngine on # if a directory or a file exists, use it directly RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # otherwise forward it to index.php RewriteRule . index.php |