Имеется advanced приложение, backend расположен на поддомене admin.site.dev, сайт находится на site.dev.
Необходимо перенаправить пользователя из админки на главный сайт.
Для этого заведен дополнительный UrlManager таким образом:
// в backend components
'reverseUrlManager' => [
'class' => yii\web\UrlManager::className(),
'baseUrl' => 'http://site.dev',
'enablePrettyUrl' => false,
'showScriptName' => true,
],
// в frontend components
'reverseUrlManager' => [
'class' => yii\web\UrlManager::className(),
'baseUrl' => 'http://admin.site.dev',
'enablePrettyUrl' => false,
'showScriptName' => true,
],
Для получения ссылки на frontend из backend делаю так:
// backend
/* @var $urlManager UrlManager */
$urlManager = \Yii::$app->get('reverseUrlManager');
var_dump($urlManager->createAbsoluteUrl(['/hello']));
При этом ожидаю получить
site.dev/hello, а получаю
admin.site.dev/hello.
Хреново! А если так:
/* @var $urlManager UrlManager */
$urlManager = \Yii::$app->get('reverseUrlManager');
$urlManager->showScriptName = false;
$urlManager->enablePrettyUrl = true;
var_dump($urlManager->createAbsoluteUrl(['/site']));
http://site.dev/hello
Работает!
Что за косяк? Почему домен задается верно только при
showScriptName = false
и
enablePrettyUrl = true
?