.htaccess Url重写后如何在Yii2高级应用程序中获取baseUrl
我使用了Yii2高级应用程序。我在前端和后端重写url。 重写后的前端url为.htaccess Url重写后如何在Yii2高级应用程序中获取baseUrl,.htaccess,yii2-advanced-app,base-url,.htaccess,Yii2 Advanced App,Base Url,我使用了Yii2高级应用程序。我在前端和后端重写url。 重写后的前端url为 localhost:83/Working-copy/mySite/ 和后端 localhost:83/Working-copy/mySite/admin 现在我想得到基本的url,比如 /工作副本/mySite/ 但我没有完全理解 我试过以下方法 echo Yii::getAlias('@web') // ans= /Working-copy/mySite/admin echo Yii::getAlias('@
localhost:83/Working-copy/mySite/
和后端
localhost:83/Working-copy/mySite/admin
现在我想得到基本的url,比如
/工作副本/mySite/
但我没有完全理解
我试过以下方法
echo Yii::getAlias('@web') // ans= /Working-copy/mySite/admin
echo Yii::getAlias('@backend') // ans= /var/www/Working-copy/mySite/backend
echo Yii::getAlias('@webroot') // ans= /var/www/Working-copy/mySite/backend
echo Yii::$app->request->BaseUrl // ans= /Working-copy/mySite/admin
echo Yii::$app->getBasePath(false) // ans= /var/www/Working-copy/mySite/backend
echo Yii::$app->homeUrl // ans = /Working-copy/mySite/admin/
在一些url中我得到/var/www/
,在一些url中得到/admin/
我只想要我的项目名称。
有什么解决办法吗
namespace common\components;
class Request extends \yii\web\Request {
public $web;
public $adminUrl;
public function getBaseUrl(){
return str_replace($this->web, "", parent::getBaseUrl()) . $this->adminUrl;
}
public function getActualBaseUrl(){
return str_replace($this->web, "", parent::getBaseUrl());
}
public function resolvePathInfo(){
if($this->getUrl() === $this->adminUrl){
return "";
}else{
return parent::resolvePathInfo();
}
}
}
namespace common\components;
class Request extends \yii\web\Request {
public $web;
public $adminUrl;
public function getBaseUrl(){
return str_replace($this->web, "", parent::getBaseUrl()) . $this->adminUrl;
}
public function getActualBaseUrl(){
return str_replace($this->web, "", parent::getBaseUrl());
}
public function resolvePathInfo(){
if($this->getUrl() === $this->adminUrl){
return "";
}else{
return parent::resolvePathInfo();
}
}
}