Yii2 的高级应用程序模板在单独的目录中创建前端和后端部分。默认情况下,这些目录出现在 URL 中,这对于干净且专业的演示文稿来说可能是不可取的。本文旨在指导您完全隐藏这些目录。
1.根.htaccess配置
在项目的根目录(例如advanced/)中,创建一个.htaccess文件并粘贴以下代码:
Options FollowSymlinks RewriteEngine On # Redirect admin requests to backend/web RewriteCond %{REQUEST_URI} ^/(admin) RewriteCond %{REQUEST_URI} !^/backend/web/(assets|css)/ RewriteRule ^.*$ backend/web/index.php [L] # Redirect all other requests to frontend/web RewriteCond %{REQUEST_URI} !^/(frontend|backend)/web/(assets|css)/ RewriteCond %{REQUEST_URI} !index.php RewriteCond %{REQUEST_FILENAME} !-f [OR] RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^.*$ frontend/web/index.php
2.请求组件
在common目录下创建一个components/Request.php文件,添加以下代码:
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 resolvePathInfo(){
if($this->getUrl() === $this->adminUrl){
return "";
}else{
return parent::resolvePathInfo();
}
}
}
3.配置前端和后端应用程序
在frontend/config/main.php和backend/config/main.php中,修改request和urlManager组件如下:
frontend /config/main.php
'request' => [
'class' => 'common\components\Request',
'web' => '/frontend/web'
],
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false
]
backend/config/main.php
'request' => [
'class' => 'common\components\Request',
'web' => '/backend/web',
'adminUrl' => '/admin'
],
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false
]
可选步骤4(如果前面的步骤失败)
在Web目录中创建一个.htaccess文件,并添加以下代码:
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /index.php?/$1 [L]
Result
应用这些更改后,您可以通过 http:// 访问您的网站/localhost/yii2app 和 http://localhost/yii2app/admin 没有任何前端或后端路径出现在 URL 中。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3