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

需求分析

我有一台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、效果演示

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

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

继续阅读
小王先森
  • 本文由 发表于 2020年3月6日
  • 除非特殊声明,本站文章均为原创,转载请务必保留本文链接
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

评论:2   其中:访客  1   博主  1
    • 王光卫博客 王光卫博客 1

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