5分钟教你配置Yii2程序支持虚拟主机

本文介绍如何去除Yii2基础版项目的URL中多余的路径部分,包括调整项目目录结构、修改index.php文件以及配置assetManager组件。

基础版

其实不改动也可以,但是你的网址要总带一个尾巴,类似于http://xx.com/**web**/index.php?r=site/index 一样,很煞风景,跟着北哥对yii2-basic进行一次小手术,就足以去掉它。

我们假设当前虚拟主机也不支持url重写,就是说你没办法通过重写规则搞定它。

首先将web目录下的所有文件都转移到程序目录下,这个时候会提示assets已经存在,直接跳过不管它,然后删除web目录。

Snip20170408_21.png

转移后是上面这个样子。

接下来改动index.php中的路径如下面代码

// comment out the following two lines when deployed to production
defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'dev');

require(__DIR__ . '/vendor/autoload.php');
require(__DIR__ . '/vendor/yiisoft/yii2/Yii.php');

$config = require(__DIR__ . '/config/web.php');

(new yii\web\Application($config))->run();

然后访问,原理上这样就可以了。你发现是不是可以使用了。

但是运行后出现了一个问题,你发现assets文件夹冲突了

Snip20170408_22.png

资源文件自动生成的东东和源文件冲突了,这样很不好,我们现在将自动生成的文件转移一下,在根目录建立一个public目录并且赋予写权限。

Snip20170408_24.png

然后配置一下config/web.php文件中的components,增加

'assetManager'=>array(
     // 设置存放assets的文件目录位置
     'basePath'=>'public',
     // 设置访问assets目录的url地址
     'baseUrl'=>'/public',
 ),

然后访问http://xx.com/index.php?r=controller/action,一起正常,且发现自动生成的资源乖乖的去public里报道了。

Snip20170409_25.png

到此为止,基础版支持虚拟主机就完成了。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值