Один домен Yii2 advanced и Url:to()

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Аватара пользователя
darlov
Сообщения: 204
Зарегистрирован: 2012.01.31, 16:09

Один домен Yii2 advanced и Url:to()

Сообщение darlov »

Здравствуйте, настраиваю Yii2 advanced на одном домене, прописал htaccess

Код: Выделить всё

Options FollowSymLinks
AddDefaultCharset utf-8
<IfModule mod_rewrite.c>
    RewriteEngine On

    # the main rewrite rule for the frontend application
    RewriteCond %{REQUEST_URI} !^/(backend/web|admin)
    RewriteRule !^frontend/web /frontend/web%{REQUEST_URI} [L]

    # redirect to the page without a trailing slash (uncomment if necessary)
    #RewriteCond %{REQUEST_URI} ^/admin/$
    #RewriteRule ^(admin)/ /$1 [L,R=301]
    # the main rewrite rule for the backend application
    RewriteCond %{REQUEST_URI} ^/admin
    RewriteRule ^admin(.*) /backend/web/$1 [L]

    # if a directory or a file of the frontend application exists, use the request directly
    RewriteCond %{REQUEST_URI} ^/frontend/web
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    # otherwise forward the request to index.php
    RewriteRule . /frontend/web/index.php [L]

    # if a directory or a file of the backend application exists, use the request directly
    RewriteCond %{REQUEST_URI} ^/backend/web
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    # otherwise forward the request to index.php
    RewriteRule . /backend/web/index.php [L]

    RewriteCond %{REQUEST_URI} \.(htaccess|htpasswd|svn|git)
    RewriteRule \.(htaccess|htpasswd|svn|git) - [F]
</IfModule>
в конфиге backend

Код: Выделить всё

    'components'=>[
        'errorHandler' => [
            'errorAction' => 'site/error',
        ],
        'request' => [
            'baseUrl'=> '/admin',
        ],
        'urlManager'=>[
            'scriptUrl'=>'/backend/web/index.php',
        ],
    ],
Вроде все работает, только когда использую Url:to()
то в ссылке появляется два раза admin
Ввожу:

Код: Выделить всё

Url::to(['dictionary/index','act'=>country])
 
получается:

Код: Выделить всё

http://domain.dev/admin/admin/dictionary/index?act=country
 
Как победить это проблему?
Спасибо!
Аватара пользователя
woland
Сообщения: 12
Зарегистрирован: 2012.11.11, 11:01

Re: Один домен Yii2 advanced и Url:to()

Сообщение woland »

Для чего вы используете scriptUrl ?
победить вашу проблему поможет - http://rmcreative.ru/blog/post/yii2-izm ... bote-s-url
Аватара пользователя
darlov
Сообщения: 204
Зарегистрирован: 2012.01.31, 16:09

Re: Один домен Yii2 advanced и Url:to()

Сообщение darlov »

woland писал(а):Для чего вы используете scriptUrl ?
победить вашу проблему поможет - http://rmcreative.ru/blog/post/yii2-izm ... bote-s-url
scriptUrl это случайная копипаста с конфига, здесь scriptUrl не имеет отношение, по моему.
Вот как мэнеджер прописан

Код: Выделить всё

return [
    'class'=>'yii\web\UrlManager',
    'enablePrettyUrl'=>true,
    'showScriptName'=>false,
    'baseUrl' => '/admin',
    'rules'=>[
        // url rules
    ]
 
И чем мне поможет ваша ссылка? Я ее видел)
UrlRule
Сообщения: 13
Зарегистрирован: 2016.05.27, 15:26

Re: Один домен Yii2 advanced и Url:to()

Сообщение UrlRule »

а из baseUrl не пробовали admin убрать? Да и admin - это у Вас модуль или просто хотите направить на backend/web?
Аватара пользователя
woland
Сообщения: 12
Зарегистрирован: 2012.11.11, 11:01

Re: Один домен Yii2 advanced и Url:to()

Сообщение woland »

попробуйте абсолютный роут

Код: Выделить всё

Url::to(['/dictionary/index','act'=>country])
кусок конфига из первого поста с scriptUrl явно противоречит ЧПУ и мне стало интересно для чего так сделано
Аватара пользователя
darlov
Сообщения: 204
Зарегистрирован: 2012.01.31, 16:09

Re: Один домен Yii2 advanced и Url:to()

Сообщение darlov »

UrlRule писал(а):а из baseUrl не пробовали admin убрать? Да и admin - это у Вас модуль или просто хотите направить на backend/web?
Да, направить на backend/web
Ответить