前提是先配制好了前后台分离,跨域问题也已经解决,如果没解决的话,请看我的另外两篇博文:vue 前端 跨域 和 thinkphp5 验证码跨域
因为阿里云的云虚拟主机是Linux系统,而且只有一个文件夹(htdocs目录)是放代码的,所以配置 thinkphp5 + vue 就是配置.htaccess
文件,如果对这方面很熟的话,就不用看了,直接去配置就行。
记得先将域名解析到云虚拟主机的IP上,然后记得在云虚拟主机里面绑定前后端的域名。
方法一: 将 thinkphp 和 vue 分别在htdocs(根目录)目录下建立文件夹放置。然后在htdocs(根目录)目录下建立.htaccess
文件,写入下列代码
<IfModule mod_rewrite.c>
Options +FollowSymlinks -Multiviews
RewriteEngine On
RewriteBase /
# thinkphp.abc.com 是 thinkphp项目 绑定的域名
RewriteCond %{HTTP_HOST} ^thinkphp.abc.com$ [NC]
# /thinkphp 是 thinkphp项目 对应的文件夹名称
RewriteCond %{REQUEST_URI} !^/thinkphp
# /thinkphp/ 是 thinkphp项目 对应的文件夹名称
RewriteRule ^(.*)$ /thinkphp/$1 [L]
# vue.abc.com 是 vue项目 绑定的域名
RewriteCond %{HTTP_HOST} ^vue.abc.com$ [NC]
# /vue 是 vue项目 对应的文件夹名称
RewriteCond %{REQUEST_URI} !^/vue
# /vue/ 是 vue项目 对应的文件夹名称
RewriteRule ^(.*)$ /vue/$1 [L]
</IfModule>
方法二: 将 thinkphp 项目的文件 放在htdocs(根目录)目录下,然后建立vue文件夹,将 vue 项目放到 vue 文件夹下。然后在htdocs(根目录)目录,也就是 thinkphp 项目 的根目录下建立.htaccess
文件,写入下列代码
<IfModule mod_rewrite.c>
Options +FollowSymlinks -Multiviews
RewriteEngine On
RewriteBase /
# vue.abc.com 是 vue项目 绑定的域名
RewriteCond %{HTTP_HOST} ^vue.abc.com$ [NC]
# /vue 是 vue项目 对应的文件夹名称
RewriteCond %{REQUEST_URI} !^/vue
# /vue/ 是 vue项目 对应的文件夹名称
RewriteRule ^(.*)$ /vue/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
</IfModule>
保存后刷新就可以啦