基础版
其实不改动也可以,但是你的网址要总带一个尾巴,类似于http://xx.com/**web**/index.php?r=site/index 一样,很煞风景,跟着北哥对yii2-basic进行一次小手术,就足以去掉它。
我们假设当前虚拟主机也不支持url重写,就是说你没办法通过重写规则搞定它。
首先将web目录下的所有文件都转移到程序目录下,这个时候会提示assets已经存在,直接跳过不管它,然后删除web目录。
转移后是上面这个样子。
接下来改动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文件夹冲突了
资源文件自动生成的东东和源文件冲突了,这样很不好,我们现在将自动生成的文件转移一下,在根目录建立一个public目录并且赋予写权限。
然后配置一下config/web.php文件中的components,增加
'assetManager'=>array(
// 设置存放assets的文件目录位置
'basePath'=>'public',
// 设置访问assets目录的url地址
'baseUrl'=>'/public',
),
然后访问http://xx.com/index.php?r=controller/action,一起正常,且发现自动生成的资源乖乖的去public里报道了。
到此为止,基础版支持虚拟主机就完成了。