Проблема с роутингом в Yii2

386
14 января 2017, 14:54

Решил изучить php фрэймворк - Yii2.
Но столкнулся с проблемой роутинга.

Вот что у меня есть:

config/web.php

...
'components' => [
        'urlManager' => [
            'enablePrettyUrl' => true,
            'showScriptName' => false,
            'enableStrictParsing' => true,
            'rules' => [
                '/' => 'site/say',
                'site/contact' => 'site/say'
            ]
        ],
...

.htaccess

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php [L]

controllers/SiteController.php

...
    public function actionSay($message = 'Привет')
    {
        return $this->render('say', ['message' => $message]);
    }
...

views/site/say.php

<?php
use yii\helpers\Html;
$this->title = 'Say';
?>
<?= Html::encode($message) ?>

Корень localhost указывает на директорию basic/web. По запросу localhost всё нормально запускается, отображается шаблон say, но по запросу localhost/site/contact выводится ошибка 404, страница не найдена.

В чём может быть проблема?

Answer 1

нашёл решение.

необходимо было ещё правильно настроить apache2 в файле apache2.conf в описании настроек директории надо было указать AllowOverride All, примерно так

<Directory /home/.../basic/web>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

это позволяет применять всё, что написано в .htaccess

READ ALSO
Разбить строку в php формата: 4044_90548_9079

Разбить строку в php формата: 4044_90548_9079

Подскажите, как разбить строку формата: 4044_90548_90791, чтобы в итоге получилось: array(4044, 4044_9054, 4044_90548_90791);

314
Не могу понять как вообще практиковать php [требует правки]

Не могу понять как вообще практиковать php [требует правки]

Изучаю php, читаю книги и нигде не могу найти как найти сервер? Где писать то? Где все пишут? Сервера дорогие

352
NGINX + Php-Fpm - No input file specified

NGINX + Php-Fpm - No input file specified

не могу запустить сайт на локалкеизобрадения видит, а php-файлы не хочет обрабатывать

401