Loading
0

apache.htaccess伪静态实现单个虚拟主机将多域名绑定子目录
被墙跳转TG:@qianhenetwork QQ 851617266

301免备案跳转微信公众号
腾讯云服务器大促销。
华为服务器

前言:apache虚拟主机可以绑定多个域名,但每个域名访问后内容一样,如果我们需要将不同域名绑定到子目录访问都是独立的内容怎么操作呢,本文介绍通过.htaccess伪静态规则实现伪静态将域名绑定子目录。
需求:
一个虚拟主机绑定了三个域名。
web1.tag.gg ---> /
web2.tag.gg ---> /web2
web3.tag.gg ---> /web3
访问web2.tag.gg后显示web2下面内容。
访问web3.tag.gg后显示web3下面内容。
Apache伪静态规则如下:测试有效。

RewriteEngine On
RewriteCond %{HTTP_HOST} ^web2\.tag\.gg$ [NC]
RewriteCond %{REQUEST_URI} !^/web2/
RewriteRule ^(.*)$ /web2/$1 [L]
RewriteCond %{HTTP_HOST} ^web3\.tag\.gg$ [NC]
RewriteCond %{REQUEST_URI} !^/web3/
RewriteRule ^(.*)$ /web3/$1 [L]


另外:
查找了一下网上还有提供其他资料的,如下,没有测试,可以自行测试。

#绑定b.host.com到/book/目录
RewriteCond %{HTTP_HOST} ^b\.host\.com$ [NC]
RewriteCond %{REQUEST_URI} !^/book/
RewriteRule ^(.*)$ book/$1?Rewrite [L,QSA]
#绑定c.host.com到/wap/目录
RewriteCond %{HTTP_HOST} ^c\.host\.com$ [NC]
RewriteCond %{REQUEST_URI} !^/wap/
RewriteRule ^(.*)$ wap/$1?Rewrite [L,QSA]

加入上述代码后,访问子网站就可以直接通过二级域名了,但是现在又出现了两个问题。首先是通过绑定在根目录的域名加路径名还是可以访问到子网站的页面,而且还有可能被搜索引擎抓取,同时似乎也没有说明,如果子网站要设置自己的伪静态该怎么做。解决的办法也很简单,在子目录里再建立.htaccess文件。
单独设置子网站的伪静态并且解决上述问题,以b.host.com为例,在/book文件夹里创建.htaccess文件,加入如下代码(最开始那重要的三条我就不重复了,反正一定要加上)。

#只许绑定的域名访问
RewriteCond %{HTTP_HOST} !^b\.host\.com$ [NC]
RewriteRule (.*) http://b.host.com/$1 [L,R=301]
#对绑定目录下与 同名的目录的处理
RewriteCond %{REQUEST_URI} ^\/book\/ [NC]
RewriteCond %{QUERY_STRING} !^(.*)?Rewrite
RewriteRule ^(.*)$ /%{REQUEST_URI}/%{REQUEST_URI}/$1?Rewrite [L,QSA]
#下面就可以单独自己写这个子网站的其它伪静态规则,在主网站的.htaccess也是同理,三个网站的各自的伪静态是独立的

301免备案跳转微信公众号
华为服务器
腾讯云服务器大促销。

声明:站长码字很辛苦啊,转载时请保留本声明及附带文章链接:https://www.zfcdn.xyz/showinfo-6-36317-0.html
亲爱的:被墙域名跳转TG:@qianhenetwork QQ:851617266,可否收藏+评论+分享呢?
上一篇:Apache禁止HTTPS窜站及禁止ip访问及域名恶意解析方法
下一篇:Apache如何同时监听IPV4和IPV6地址