urlManager

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Maksat1991
Сообщения: 57
Зарегистрирован: 2016.10.16, 00:15

urlManager

Сообщение Maksat1991 » 2017.04.14, 07:36

Yii 2.0 advanced;
В /frontend/config/main.php в секции 'components' пишу
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
// 'enableStrictParsing' => true,
'rules' => [
[
'pattern' => '',
'route' => 'site/index',
],
[
'pattern' => '<action:(?(?=(index|site\/index))|(?(?!.*[\/].*).*))>',
'route' => 'site/<action>',
],

],
],

Чтобы проверить, правильно ли работает, во view для actionIndex пишу:
<?=Url::to(['site/contact'])?>
<br/><a href="<?=Url::to(['site/contact'])?>">Анкор</a>

Перехожу по ссылке - 404.
А если поставить 'enablePrettyUrl' => false, то ссылка формируется некрасивая, но рабочая,
/index.php?r=site%2Fcontact

Вопрос в том, как сделать правильный URL manager? Ведь urlManager ссылку из контроллер/экшн в URL-адрес формирует. А вот обратно из URL-адреса в контроллер/экшн преобразовать не может.

Аватара пользователя
Haku
Сообщения: 56
Зарегистрирован: 2015.03.11, 07:39

Re: urlManager

Сообщение Haku » 2017.04.14, 12:02

Вы не забыли внести правки в .htaccess? Вот пример.

Maksat1991
Сообщения: 57
Зарегистрирован: 2016.10.16, 00:15

Re: urlManager

Сообщение Maksat1991 » 2017.04.14, 13:25

Haku писал(а):
2017.04.14, 12:02
Вы не забыли внести правки в .htaccess? Вот пример.
Этот .htaccess должен быть в корне сайта? Или в /frontend/web/ ?
Apache настроен следующий образом
<VirtualHost *:80>
ServerAdmin Maksat1991@mail.ru
ServerName advanced.local
ServerAlias www.advanced.local
DocumentRoot /home/maksat/www/advanced
ErrorLog ${APACHE_LOG_DIR}/advanced_error.log
CustomLog ${APACHE_LOG_DIR}/advanced_access.log combined
</VirtualHost>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet


До добавления такого файла в .htaccess я видел главную страницу только по url-адресу /frontend/web
По логике после добавления в корень сайта указанного .htaccess я должен видеть главную страницу сразу же, по адресу /. Но этого не происходит, как-будто и нет этого .htaccess вовсе

Аватара пользователя
Haku
Сообщения: 56
Зарегистрирован: 2015.03.11, 07:39

Re: urlManager

Сообщение Haku » 2017.04.14, 19:53

Maksat1991 писал(а):
2017.04.14, 13:25
Но этого не происходит, как-будто и нет этого .htaccess вовсе
Может у вас в конфигурации Apache в директиве "AllowOverride" указано "None"?

Ответить