簡體   English   中英

Yii2-獲取不帶參數的應用程序URL

[英]Yii2 - Get an app URL without params

我不知道如何在Yii2中獲取完整的URL到我的應用程序Web文件夾。 以下規則:

<?=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組合起來……但這是解決方案嗎?

我知道這篇文章已經很老了,但我還是想回答。 要在Yii2中獲得指向您的應用程序Web文件夾的完整URL,您可以嘗試以下三個選項:

  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/

您可以使用Yii::$app->getUrlManager()->createAbsoluteUrl()方法或Yii::$app->getUrlManager()->createAbsoluteUrl() yii\\helpers\\Url::toRoute()生成絕對網址。 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(使用域),則應使用它。

在返回的基本URL中使用的URI方案:

  • (默認):返回不帶主機信息的基本URL。
  • true :返回一個絕對基本URL,該URL的方案與yii \\ web \\ UrlManager :: $ hostInfo中的方案相同。
  • string :返回具有指定方案的絕對基本URL(對於協議相對URL,為httphttps或空字符串)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM