我的知识记录

巧用伪静态解决虚拟主机不支持绑定到子目录的问题

阿里云虚拟主机只能放一个网站,为了能够搭建多个网站就要使用到伪静态文件.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路径实现第二个站点

}

巧用伪静态解决虚拟主机不支持绑定到子目录的问题

标签:

更新时间:2025-12-07 19:26:21

上一篇:pbootcms生成的sitemap.xml中增加tag标签链接

下一篇:百度云虚拟主机如何配置PBOOTCMS伪静态