///////////////////////////////////////////////////////
1. Устанавливаете Yii2 Basic на сервер, как написано в документации. Описано там всё четко и по делу, добавить мне нечего.
Разве что вот: локально на OpenServer поставилось без сучка, без задоринки. А вот удаленно, на KVM Ubuntu 16.04 с 1Gb оперативки Composer-у не хватило памяти. Бился часа два, так и не осилил. Благо, что с локального сервера на удаленный, сайт можно легко перенести простым копированием.
2. Повторюсь, установка — basic (допустим, в папку /www/site/basic, но далее мы для простоты изложения будем вести отсчет именно от папки basic в которую вы создали проект, как рекомендуется в руководстве).
Папку basic/web сразу устанавливаете как DocumentRoot — как это сделать, тоже есть в официальном руководстве на русском языке.
3. Открываете basic/controllers/SiteController.php и меняете
Код: Выделить всё
public function actions()
{
return [
'error' => [
'class' => 'yii\web\ErrorAction',
],
'captcha' => [
'class' => 'yii\captcha\CaptchaAction',
'fixedVerifyCode' => YII_ENV_TEST ? 'testme' : null,
],
];
}
Код: Выделить всё
public function actions()
{
return [
'error' => [
'class' => 'yii\web\ErrorAction',
],
'captcha' => [
'class' => 'yii\captcha\CaptchaAction',
'fixedVerifyCode' => YII_ENV_TEST ? 'testme' : null,
],
'page' => [
'class' => 'yii\web\ViewAction',
],
];
}
Это позволит вам не писать отдельный action для каждой статической страницы. Отныне они у вас вас будут подхватываться автоматически из папки basic/views/site/pages.
Создайте в этой папке файл one.php и скопируйте в него содержимое файла basic/views/site/about.php (для понятности).
Теперь содержимое этого файла доступно по адресу:
Код: Выделить всё
http://yoursite.com/index.php?r=site%2Fpage&view=one
4. Включаете ЧПУ, как написано здесь.
Настройки производятся в файле basic/config/web.php.
5. Для того, чтобы урл
Код: Выделить всё
http://yoursite.com/index.php?r=site%2Fpage&view=one
Код: Выделить всё
http://yoursite.com/one
Код: Выделить всё
'<view>' => 'site/page',
Код: Выделить всё
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'enableStrictParsing' => false,
'rules' => [
'<view>' => 'site/page',
],
],
Код: Выделить всё
$this->title = 'Титл для one.php';
Код: Выделить всё
$this->registerMetaTag([ 'property' => 'og:title', 'content' => 'OG-титл для one.php' ]);
7. Трик для og:url
Под строчкой
Код: Выделить всё
use yii\helpers\Html;
Код: Выделить всё
use yii\helpers\Url;
Код: Выделить всё
$this->registerMetaTag([ 'property' => 'og:url', 'content' => Url::to('',true) ]);
8. То же самое и с внутренними ссылками по сайту. Подключаете хелпер (наверху страницы):
Код: Выделить всё
use yii\helpers\Url;
Код: Выделить всё
<?= Url::to(['site/page', 'view' => 'one']); ?>
И да, обратите внимание, что в виджете NavBar лэйаута (basic/views/layouts/main.php) эта же ссылка будет выглядеть примерно так:
Код: Выделить всё
['label' => 'Наша страница One', 'url' => ['/site/page', 'view' => 'one']],
///////////////////////////////////////////////////////
Изначально я его тиснул на Хабре: Yii2, быстрый старт. Самый простой сайт на Yii2 со статическими страницами без использования БД - но там народ пока в каментах возмущен тем, что типа "это никому не нужно" НО МНЕ-ТО КАК РАЗ ТАКОЙ ТЕКСТ И НУЖЕН БЫЛ НЕДЕЛЮ НАЗАД!