После установки базовой версии 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>', ],

