Я не знаю, как получить полный URL-адрес в моей веб-папке приложения в Yii2. Следующие правила:
<?=Yii::$app->getUrlManager()->getBaseUrl();?><br>
<?=Yii::$app->homeUrl;?><br>
<?=Yii::$app->getHomeUrl();?><br>
<?=Yii::$app->request->url;?><br>
<?=Yii::$app->request->absoluteUrl;?><br>
<?=Yii::$app->request->baseUrl;?><br>
<?=Yii::$app->request->scriptUrl;?><br>
<?=Url::to();?><br>
<?=Url::to(['site/index']);?><br>
<?=Url::base();?><br>
<?=Url::home();?><br>
<?=Yii::$app->getUrlManager()->getBaseUrl();?><br>
возвращает:
/yiiapp/web
/yiiapp/web/
/yiiapp/web/
/yiiapp/web/en/reset-password-request
http://website.com/yiiapp/web/en/reset-password-request
/yiiapp/web
/yiiapp/web/index.php
/yiiapp/web/en/reset-password-request
/yiiapp/web/site/index
/yiiapp/web
/yiiapp/web/
/yiiapp/web
когда мне нужно получить (absoluteUrl является ближайшим здесь):
http://website.com/yiiapp/web
Возможно, я мог бы объединить один из результатов с некоторым $ _SERVER var... но это решение?
Я понимаю, что этот пост довольно старый, но я хочу ответить на него в любом случае. Чтобы получить полный URL-адрес вашей веб-папки приложения в Yii2, вы можете попробовать следующие три варианта:
Url::to('@web/', '');
возвращает //website.com/yiiapp/web/
Url::to('@web/', true);
возвращает http://website.com/yiiapp/web/
Url::to('@web/', 'https');
возвращает https://website.com/yiiapp/web/
Вы можете использовать Yii::$app->getUrlManager()->createAbsoluteUrl()
или yii\helpers\Url::toRoute()
для генерации абсолютных URL-адресов. yii\helpers\Url::to()
также можно использовать для просмотра документации. Например, <?=Url::to(['site/index'], true);?>
Должен выводить http://website.com/yiiapp/web/site/index. Если вам нужно получить корневой URL-адрес вашего приложения, попробуйте \yii\helpers\Url::to('/', true);
Существует несколько способов достижения этого, но, вероятно, самый чистый способ получить базовый URL вашего приложения - использовать Url::base()
:
Url::base(true);
Большинство методов в помощнике Url
позволяют указать аргумент $scheme
- вы должны использовать его, если хотите создать абсолютный URL (с доменом).
Схема URI для использования в возвращаемом базовом URL-адресе:
- false (по умолчанию): возврат базового URL-адреса без информации о хосте.
- true: возврат абсолютного базового URL-адреса, схема которого аналогична схеме в yii\web\UrlManager :: $ hostInfo.
- string: возвращает абсолютный базовый URL с указанной схемой (либо
http
,https
либо пустую строку для относительного URL-адреса протокола).