127.0.0.1 xxx.cn #一级域名
127.0.0.1 www.xxx.cn #二级域名
127.0.0.1 m.xxx.cn #前端H5
127.0.0.1 admin.xxx.cn #后端管理
application\config文件配置:
// 域名部署
'url_domain_deploy' => true,//false改成true
application\route.php配置子域名绑定模块
<?php
use think\Route;
Route::domain('m','app');//绑定前端模块
#其中m是子域名,而app是模块名.这段表示任何以m为子域名的访问,都会被解析到该模块。
Route::domain('admin','admin');//绑定后端模块
配置vhost:
server
{
listen 80;
#listen [::]:80;
server_name xxx.cn www.xxx.cn m.xxx.cn admin.xxx.com
192.168.1.1;
index default.html index.php index.html index.htm;
root /home/wwwroot/youmi/public;
error_page 404 /404.html;
include none.conf;
include enable-php.conf;
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|sir)$ {
expires 30d;
}
location ~ .*\.(js|css)?$ {
expires 12h;
}
location ~ /\. {
deny all;
}
location / {
if (!-e $request_filename){
# PATHINFO变量名 用于兼容模式config中var_pathinfo值设为s
rewrite ^/(.*)$ /index.php?s=$1 last;
break;
}
}
access_log /home/wwwlogs/access.log;
error_log /home/wwwlogs/error.log;
}
配置的域名都使用80端口。所以重启时有warn⚠
解决方法:在apache或nginx中要配置两个虚拟主机,一个域名为xxx.com,另一个域名为m.xxx.com。根目录都指向public文件夹,路由文件中绑定模块Route::domain('域名前缀','模块名')
,这样还有一个好处就是可以单独配置两个域名https证书访问。例如:
m.xxx.com #单独配置域名,https证书访问
admin.xxx.com #单独配置域名,https证书访问

image.png
网友评论