Yii2 - Получить URL приложения без параметров

1

Я не знаю, как получить полный 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... но это решение?

  • 0
    уточните пожалуйста, что у вас после. Например, показать URL-адрес, который вы ожидаете, и то, что контроллер / представление этой страницы.
Теги:
yii2
yii

3 ответа

1

Я понимаю, что этот пост довольно старый, но я хочу ответить на него в любом случае. Чтобы получить полный URL-адрес вашей веб-папки приложения в Yii2, вы можете попробовать следующие три варианта:

  1. Url::to('@web/', ''); возвращает //website.com/yiiapp/web/
  2. Url::to('@web/', true); возвращает http://website.com/yiiapp/web/
  3. Url::to('@web/', 'https'); возвращает https://website.com/yiiapp/web/
1

Вы можете использовать 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);

0

Существует несколько способов достижения этого, но, вероятно, самый чистый способ получить базовый URL вашего приложения - использовать Url::base():

Url::base(true);

Большинство методов в помощнике Url позволяют указать аргумент $scheme - вы должны использовать его, если хотите создать абсолютный URL (с доменом).

Схема URI для использования в возвращаемом базовом URL-адресе:

  • false (по умолчанию): возврат базового URL-адреса без информации о хосте.
  • true: возврат абсолютного базового URL-адреса, схема которого аналогична схеме в yii\web\UrlManager :: $ hostInfo.
  • string: возвращает абсолютный базовый URL с указанной схемой (либо http, https либо пустую строку для относительного URL-адреса протокола).

Ещё вопросы

Сообщество Overcoder
Наверх
Меню