После установки базовой версии Yii2, ссылки на сайте стали отображаться в таком виде
http://my-site.org/web/index.php?r=site%2Findex
тоесть корень сайта идет с «web» и видны GET параметры в урле
Чтоб убрать из урла «web» достаточно перенести файлы из этой папки в корень сайта, ну и остальные файлы и папки перенести выше корня сайта
Для того чтобы убрать параметры GET с урла, надо сделать правки в файле config/web.php
<?php $params = require __DIR__ . '/params.php'; $db = require __DIR__ . '/db.php'; $config = [ 'id' => 'basic', 'basePath' => dirname(__DIR__), 'bootstrap' => ['log'], . . . 'components' => [ 'urlManager' => [ 'enablePrettyUrl' => true, 'showScriptName' => false, ], . . .
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
После этих правок ссылки сайта примут следующий вид
Теперь надо убрать из урла site, тоесть название контроллера
Для этого опять внесем правки в конфиг config/web.php
<?php $params = require __DIR__ . '/params.php'; $db = require __DIR__ . '/db.php'; $config = [ 'id' => 'basic', 'basePath' => dirname(__DIR__), 'bootstrap' => ['log'], . . . 'components' => [ 'urlManager' => [ 'enablePrettyUrl' => true, 'showScriptName' => false, 'rules' => [ 'about' => 'site/about', 'contact' => 'site/contact', 'login' => 'site/login', ] ], . . .
Как видно из примера, для изменения урла есть раздел rules, собственно в котором и указываем правила отображения.
А теперь сокращенная версия правил для урлов одного контроллера
'rules' => [ '<action:(about|contact|login)>' => 'site/<action>', ],
Или еще одна сокращенная запись, но тут уже не надо перечислять урлы
'rules' => [ '<action:[-a-zA-Z0-9_]+>' => 'site/<action>', ],