Страница 1 из 1

urlManager

Добавлено: 2017.04.14, 07:36
Maksat1991
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-адреса в контроллер/экшн преобразовать не может.

Re: urlManager

Добавлено: 2017.04.14, 12:02
Haku
Вы не забыли внести правки в .htaccess? Вот пример.

Re: urlManager

Добавлено: 2017.04.14, 13:25
Maksat1991
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 вовсе

Re: urlManager

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