巧用伪静态解决虚拟主机不支持绑定到子目录的问题
阿里云虚拟主机只能放一个网站,为了能够搭建多个网站就要使用到伪静态文件.htaccess 文件或nginx rewrite。
一、apache服务器的虚拟主机。
阿里云虚拟机提供一个网站文件夹,也就是根目录里面可以放一个 A 网站,那么要想多放一个 B 网站,假设域名是 www.bbb.net,还要建立一个文件夹,名字随便起,我这里叫 bweb 也就是 B 网站的根目录。
那么通过以下操作可以实现阿里云虚拟主机建立多个网站。
1、在阿里云虚拟主机根目录建立一个.htaccess 文件,内容如下:
RewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} ^www.bbb.net$ [NC] RewriteCond %{REQUEST_URI} !^/bweb RewriteRule ^(.*)$ /bweb/$1 [L]
解释:要绑定多个网站,需重复上面三行代码并更改对应域名、目录名
2、在 bweb 文件夹内建立一个.htaccess 文件,内容如下:
RewriteEngine On RewriteCond %{HTTP_HOST} !^www.bbb.net$ [NC] RewriteRule (.*) https://www.bbb.net/$1 [L,R=301]
注意以上的bbb.net或www.bbb.net是需要你替换掉的。
3、如果还想建立第三个网站,就把 1 中的红色文字那三行再次复制粘贴到下面,同时修改对应的域名和文件夹名字即可。
二、nginx服务器的虚拟主机
参考一中新建 bweb目录。 在虚拟主机面板的nginx设置中,添加以下代码:
location / { try_files $uri $uri/ /index.php?$args; #A站的wordpress伪静态 if ( $host = 'aaa.net' ) { rewrite ^/(.*)$ http://www.aaa.net/$1 permanent; } #A站不带www跳转至https://www. if ( $host = 'bbb.net' ) { rewrite ^/(.*)$ http://www.bbb.net/$1 permanent; } #B站不带www跳转至https://www. if ($host ~* "^www.bbb.net$") { set $rule_0 1$rule_0; } if ($uri !~ "^/bweb") { set $rule_0 2$rule_0; } if ($rule_0 = "21") { rewrite ^/(.*)$ /bweb/$1 last; } #B占跳转至/bweb路径实现第二个站点 }
如果您的问题还未解决可以联系站长付费协助。
有问题可以加入技术QQ群一起交流学习
本站vip会员 请加入无忧模板网 VIP群(50604020) PS:加入时备注用户名或昵称
普通注册会员或访客 请加入无忧模板网 技术交流群(50604130)
客服微信号:15898888535
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若内容侵犯了原著者的合法权益,可联系站长删除。