> 服务器 >

虚拟主机.htaccess绑定多个域名多个网站到一个空间【亲测有效】

来源:网络 文章列表 2019-05-06 8
.htaccess实现虚拟主机绑定多个站点。

很多虚拟主机都是只能绑定多个域名到跟目录,不支持多个域名绑定到子目录。这样一个空间基本只能放置一个网站。我们今天的教程就是教大家如何利用.htaccess实现绑定域名到子目录、一个空间多个站点。

利用.htaccess绑定域名到子目录,前提你的空间服务器必须支持apache的rewrite功能,只有这样才能使用.htaccess

.htaccess绑定子目录案例

第一步:根目录下添加如下.htaccess规则

例如:下面是以 m1.jsphp.net 和 m2.jsphp.net 为例的.htaccess代码

RewriteEngine On
RewriteBase /
#绑定m.jsphp.net域名到根目录下的site2目录
RewriteCond %{HTTP_HOST} ^m2.jsphp.net$ [NC]
RewriteCond %{REQUEST_URI} !^/site2/
RewriteRule ^(.*)$ site2/$1?Rewrite [L,QSA]
#如果有多个复制下面这3行代码,根据目录和域名对应修改复制一段
RewriteCond %{HTTP_HOST} ^m1.jsphp.net$ [NC]
RewriteCond %{REQUEST_URI} !^/site1/
RewriteRule ^(.*)$ site1/$1?Rewrite [L,QSA]

此时,输入m1.jsphp.net,应该就可以访问到site1目录下的文件了。输入m2.jsphp.net就可以访问到site2目录下的文件了。

但是,如果你细心还会发现,你的主域名假如是www.jsphp.net/site1 也是可以访问到site1目录下的站点内容。这样不是我们所希望的。毕竟这样对于SEO是比较不友好的。

第二步:子目录也添加.htaccess文件

接下来我们再新建一个.htaccess文件,假如我们需要处理的域名为m1.jsphp.net 目录是 根目录下的 site1 目录

.htaccess代码如下:

RewriteEngine On

RewriteBase /

#只许绑定的域名访问

RewriteCond %{HTTP_HOST} !^m1.jsphp.net$ [NC]

RewriteRule (.*) http://m1.jsphp.net/$1 [L,R=301]

#对绑定目录下与 同名的目录的处理,如果没有同名目录,下面的代码也可以不需要

RewriteCond %{REQUEST_URI} ^/site1/ [NC]

RewriteCond %{QUERY_STRING} !^(.*)?Rewrite

RewriteRule ^(.*)$ /%{REQUEST_URI}/%{REQUEST_URI}/$1?Rewrite [L,QSA]

此时你就可以看到你访问 主域名 www.jsphp.net/site1/ 目录会自动跳转到   m1.jsphp.net目录里。

如果你有其他的伪静态规则,则都可以继续在对应的.htaccess文件里添加。

 

腾讯云限量秒杀

1核2G 5M 50元/年 2核4G 8M 74元/年 4核8G 5M 818元/年 CDN流量包 100GB 9元

版权声明

本站部分原创文章,部分文章整理自网络。如有转载的文章侵犯了您的版权,请联系站长删除处理。如果您有优质文章,欢迎发稿给我们!联系站长:
愿本站的内容能为您的学习、工作带来绵薄之力。

评论

  • 随机获取
点击刷新
精彩评论

友情链接