亲测配置流程,如有错误欢迎指正^^
支持3级别目录安装htdoc/laravel/public
使用虚拟主机可以搭建多个独立网站
文件迁移
将laravel的整体目录上传至服务器htdoc目录下。共计7000多个文件,主要是vendor目录非常大,包含了laravel框架所需要的各种依赖包。
数据库迁移
这里我采用的是常规办法,将mysql表中的数据和结构直接导出,然后通过万网的DMS导入到数据库中。
mysqldump -u laravel> laravel.sql
记得要修改.env文件,和app/database.php文件,这里我修改.env文件的时候,数据库的配置没有生效,所以我修改的是database.php 文件。
目录重写
重写之后laravel/public目录会被隐藏
由于我们的入口不是在根目录/htdoc下,所以我们要进行重写,这里有三层目录/larave/public/分别是/、laravel、public
首先我们将指定域名www.osinger.com的请求都转发到/laravel/public/index.php上。
将所有的静态资源,包括js和css以及字体都重写到laravel/public目录下
删掉public目录下的.htaccess
下面是.htaccess文件的内容,要放到根目录下。
RewriteEngine On
RewriteBase /
重写所有的静态资源,记住这个规则组要放到上面
RewriteCond %{HTTP_HOST} ^www\.osinger\.com$ [NC]
RewriteCond %{REQUEST_URI} ^(.*(\.css|\.js|\.woff2|\.woff|\.ttf))$
L:最后一条规则 QSA:追加请求串(query string append)
RewriteRule ^(.*)$ laravel/public/$1 [L,QSA]
重写php请求
NC :不区分大小写
RewriteCond %{HTTP_HOST} ^www\.osinger\.com$ [NC]如果当前的uri是laravel/public的话,直接就结束匹配
RewriteCond %{REQUEST_URI} !^/laravel/public
RewriteRule ^(.*)$ laravel/public/index.php?$1 [L,QSA]
在laravel目录下,还有一个.htaccess ,这个文件不需要修改,保持不变。