nepster-web
@nepster-web

Yii2 advanced, как лучше решить вопрос с index файлами?

Установил Yii2 advanced. Файлы index.php так и остались в backend/web и frontend/web.

Реализовал доступ к ним вот так, .htaccess
<IfModule mod_rewrite.c>
    Options +FollowSymlinks
    RewriteEngine On
</IfModule>
 
<IfModule mod_rewrite.c>
    # deal with admin first
    RewriteCond %{REQUEST_URI} ^/(admin|assets|css|js|images)
    RewriteRule ^admin/assets/(.*)$ backend/web/assets/$1 [L]
    RewriteRule ^admin/css/(.*)$ backend/web/css/$1 [L]
    RewriteRule ^admin/js/(.*)$ backend/web/js/$1 [L]
    RewriteRule ^admin/images/(.*)$ backend/web/images/$1 [L]

    RewriteCond %{REQUEST_URI} !^/backend/web/(assets|css)/
    RewriteCond %{REQUEST_URI} ^/(admin)
    RewriteRule ^.*$ backend/web/index.php [L]

    RewriteCond %{REQUEST_URI} ^/(assets|css|js|images)
    RewriteRule ^assets/(.*)$ frontend/web/assets/$1 [L]
    RewriteRule ^css/(.*)$ frontend/web/css/$1 [L]
    RewriteRule ^js/(.*)$ frontend/web/js/$1 [L]
    RewriteRule ^images/(.*)$ frontend/web/images/$1 [L]
    RewriteRule ^(.*)$ frontend/web/$1 [L]

    RewriteCond %{REQUEST_URI} !^/(frontend|backend)/web/(assets|css|js)/
    RewriteCond %{REQUEST_URI} !index.php
    RewriteCond %{REQUEST_FILENAME} !-f [OR]
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^.*$ frontend/web/index.php
</IfModule>


фронтенд: site.ru
бекенд: site.ru/admin

Все работает. Однако наткнулся на следующий косяк:

В админке, хочу создать такой url: /admin/users/all/page/2

echo Url::toRoute(['/users/all', 'page' => 2], true); 
echo Url::toRoute(['/users/all', 'page' => 2]);


на выходе выходит так:
http://site.ru/admin/users/all?page=2
/admin/users/all?page=2


На бекенде мой конфиг такой:
...
    'components' => [
        'request' => [
            'enableCsrfValidation' => true,
            'enableCookieValidation' => true,
            'baseUrl' => '/admin'
        ],
        'urlManager' => [
            'enablePrettyUrl' => true,
            'showScriptName' => false,

            'rules' => [
                // Модуль [[users]]
                'users/all/page/<page>' => 'users/default/all',
                'users/all' => 'users/default/all',
                
                 //'<_a:(login|logout|error|captcha)>' => 'admin/default/<_a>',
            ]
        ],
         ....


В общем, при такой конфигурации никак не получается с помощью
echo Url::toRoute(['/users/all', 'page' => 2]);

сделать /admin/users/all/page/2

Подскажите, пожалуйста, как кто-то решал такую проблему?
  • Вопрос задан
  • 5768 просмотров
Пригласить эксперта
Ответы на вопрос 2
Я делаю backend на отдельный секретный домен.
Ответ написан
Комментировать
vyachin
@vyachin
Ищу работу
Так должно помочь
echo Url::toRoute(['/users/default/all', 'page' => 2], true);

вот тут есть примеры хорошие www.yiiframework.com/doc-2.0/guide-runtime-routing...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы