一台Apache云主机构建多个站点(绑定多个域名)
用户名
密码
标签搜索

一台Apache云主机构建多个站点(绑定多个域名)

小王先森
2020-03-06 / 2 评论 / 128 阅读 / 正在检测是否收录...
/
温馨提示:
本文最后更新于2020年12月02日,已超过160天没有更新,若内容或图片失效,请留言反馈。

需求分析我有一台Apache云虚拟主机,想要实现A项目(sou.xwsir.cn)访问根目录,B项目(nav.xwsir.cn)访问子目录 so ,并且访问时不出现文件夹名。

实现方法:使用.htaccess规则来实现。

1、根目录下新建.htaccess文件,内容如下:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
# 绑定 nav.xwsir.cn 到子目录 so
RewriteCond %{HTTP_HOST} ^nav\.xwsir\.cn$ [NC]
RewriteCond %{REQUEST_URI} !^/so/
RewriteRule ^(.*)$ so/$1?Rewrite [L,QSA]
#可以绑定多个,只需重复上三行代码并更改一下域名、目录名就行了
</IfModule>

2、子目录下新建.htaccess文件,内容如下:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
#只许绑定的域名访问,其他域名301跳转
RewriteCond %{HTTP_HOST} !^nav\.xwsir\.cn$ [NC]
RewriteRule (.*) http://nav.xwsir.cn/$1 [L,R=301]
#对绑定根目录下的子目录 so 处理
RewriteCond %{REQUEST_URI} ^\/so\/ [NC]
RewriteCond %{QUERY_STRING} !^(.*)?Rewrite
#
RewriteRule ^(.*)$ /%{REQUEST_URI}/%{REQUEST_URI}/$1?Rewrite [L,QSA]
</IfModule>

3、语句解释

//这个是绑定的域名,nav是二级域名,顶级域名xwsir.cn
RewriteCond %{HTTP_HOST} ^nav\.xwsir\.cn$ [NC]

//so是你的文件夹名称
RewriteCond %{REQUEST_URI} !^/so/

//允许nav的二级域名访问该文件夹
RewriteRule ^(.*)$ so/$1?Rewrite [L,QSA]

4、效果演示

[link href=https://sou.xwsir.cn]主站sou.xwsir.cn[/link]

[link href=https://nav.xwsir.cn]子站nav.xwsir.cn[/link]

最后,感谢萧瑟技术指导。

原文链接 >> Apache云虚拟主机建设多个网站,突破只能建设一个网站限制

0

评论 (2)

取消
  1. 头像
    王光卫博客
    MacOS · Google Chrome

    貌似你这个是虚拟主机的方法 :mrgreen:

    回复
    1. 头像
      小王先森 作者
      Windows 10 · Google Chrome
      @ 王光卫博客

      是云虚拟主机啊

      回复