Получи 404 после раскомментирования enablePrettyUrl YII2
После раскомментирования enablePrettyUrl получаю ошибку 404
Например:
Запрашиваемый URL / сайт / индекс не найден на этом сервере.
Сервер Apache/2.4.7 (Ubuntu) на порт yiibasic.com 80
Когда я снова это комментирую, все работает
'components' => [
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => [
],
],
]
Не могу понять, в чем проблема.
.htaccess:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php
2 ответа
После добавления файла.htaccess в вашу папку./web (если используется базовый шаблон), вы должны добавить некоторые правила в раздел urlManager вашего файла конфигурации web.php... см. Ниже
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'enableStrictParsing' => false,
'rules' => array(
'<controller:\w+>/<id:\d+>' => '<controller>/view',
'<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',
'<controller:\w+>/<action:\w+>' => '<controller>/<action>',
),
],
Менеджер URL (Yii2) поддерживает два формата URL:
формат URL по умолчанию; красивый формат URL.
По умолчанию для enablePrettyUrl установлено значение false, это означает, что URL-адрес имеет формат
your/index.php?r=post%2Fview&id=100
Если вы раскомментируете 'enablePrettyUrl' => true,
'components' => [
'urlManager' => [
//'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => [
],
],
]
Вы включаете формат для prettyUrl, например:
/index.php/post/100
как вы легко видите, эти два формата различаются, поэтому явный вызов, основанный на формате, возвращает ошибку 404... при изменении формата urlManager, включающего или отключающего симпатичный URL-адрес..
Вы можете позвонить по URL, избегая этой проблемы, используя urlHelper
use yii\helpers\Url;
echo Url::to(['post/view', 'id' => 100]);
с этим помощником Yii2 создайте правильный URL в соответствии с используемым состоянием включения симпатичного URL
Краткое руководство по маршрутизации yii2 можно найти здесь http://www.yiiframework.com/doc-2.0/guide-runtime-routing.html