通过.htaccess伪静态实现二级域名解析绑定到子目录

通过.htaccess伪静态实现二级域名解析绑定到子目录

一般的虚拟主机只允许建立一个站点,只能绑定域名来访问1个站点。那么该如何实现二级域名来解析到站点中的子目录作为二级站点呢?

比如:虚拟主机绑定的域名是www.baidu.com,二级域名m.baidu.com解析到站点子目录/m/。

Apache的伪静态.htaccess中的URL重写:

1、把二级域名m.baidu.com绑定到/m/目录:



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

即使HTTP_HOST中的“.”不加反斜杠,也能够实现绑定m.baidu.com,因为“.”可以匹配任意一个字符。

不过这样还可以通过 主域名/m 访问,要想禁止这种的话就需要添加/m下在加一个.htaccess文件,内容如下:

2、/m/目录下的.htaccess内容:



RewriteEngine On
RewriteBase /
#只许绑定的域名访问,其他域名301跳转
RewriteCond %{HTTP_HOST} !^m\.baidu\.com$ [NC]
RewriteRule (.*) http://m.baidu.com/$1 [L,R=301]
#对绑定目录下m目录的处理
RewriteCond %{REQUEST_URI} ^\/m\/ [NC]
RewriteCond %{QUERY_STRING} !^(.*)?Rewrite
#m.baidu.com/m实际上访问m.baidu.com/m/m
RewriteRule ^(.*)$ /%{REQUEST_URI}/%{REQUEST_URI}/$1?Rewrite [L,QSA]

当然,如果对绑定子目录的要求不高的话,子目录下就不需要建立.htaccess文件了。

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论