菜鸟科技网

如何一个空间放两个网站

JavaScript跳转法

  1. 绑定域名:在空间上分别绑定两个不同的域名,比如www.aaa.com和www.bbb.com。
  2. 上传网站文件:把www.aaa.com的网站文件传到空间的根目录,将www.bbb.com的网站文件传到“./bbb/”目录。
  3. 创建并上传JS文件:把下面这段代码保存为domain.js,然后上传到空间根目录。
    switch(location.host){
     case 'www.bbb.com':
         location.href="http://www.bbb.com/bbb/";
     break;
    }
  4. 修改首页代码:往空间根目录的首页的<head></head>之间加入<script language='javascript' src='domain.js'></script>
  5. 测试访问:当输入www.aaa.com访问时不会看到明显变化,但输入www.bbb.com访问时,浏览器会自动跳转到www.bbb.com/bbb/,以此实现同一个空间安装两个网站的效果,若需实现更多网站,可依此类推进行设置。

Server.Transfer方法(推荐)

  1. 绑定所有域名:先将计划使用的多个域名都绑定到您的虚拟主机上。
  2. 修改首页ASP文件:将虚拟主机根目录中的index.asp(首页文件)里加入相应代码。
    <%
    sn=lcase(Request.ServerVariables("SERVER_NAME")) '用于获取用户是通过哪个域名访问的,并转换成小写
    if sn="www.abc.net" or sn="yuxicn.net" then server.Transfer("default1.asp")
    if sn="www.def.net" or sn="zxks.net" then server.Transfer("index.html")
    %>
  3. 效果说明:如果访问者输入的域名是www.abc.net或abc.net,就会访问default1.asp页面;如果是用def.net或www.def.net,则会调用index.html文件,此方法的好处一是不会出现页面跳转,直接输入网址后,网址后不会带任何文件,访问者难以察觉这两个网站是放在同一虚拟主机上;二是不会阻挡搜索引擎对网站的收录,而使用response.redirect则不一定能有同样的效果。

利用ASP文件判定域名跳转法(方便管理)

  1. 建立默认主页:先创建一个默认主页index.asp。
  2. 规划站点文件夹:把A站放在A文件夹下,B站放在B文件夹下,C站放在C文件夹下等。
  3. 编写跳转代码:在index.asp网页文件中写入如下代码:
    <%if Request.ServerVariables("SERVER_NAME")="www.a.com " then
    response.redirect "a/index.asp"
    elseif Request.ServerVariables("SERVER_NAME")="www.b.com " then
    response.redirect "b/index.asp"
    elseif Request.ServerVariables("SERVER_NAME")="www.c.com " then
    response.redirect "c/index.asp"
    else
    response.redirect "aaa/index.asp"
    end if%>
  4. 代码作用解释:如果用户访问www.a.com,程序会跳转至空间目录下的a/index.asp;访问www.b.com则跳转至b/index.asp;访问www.c.com跳转至c/index.asp;若访问未指定的域名,就跳转至aaa/index.asp,这种方法便于管理大量网站,只要把域名都绑定在虚拟主机上,并根据需要设置对应的跳转规则即可,不过其缺点是打开如abc.com时,在浏览器中看到的可能是abc.com/b这样的路径,因为站点实际位于b目录下。

PHP实现方法(适用于支持PHP的空间)

  1. 解析域名到空间:将需要的两个域名解析到同一个网站空间,例如www.com和www..cn。
  2. 设置默认文档:把默认文档设置为index.php,前提是空间必须支持PHP。
  3. 编写判断逻辑代码:利用PHP中的$_SERVER['HTTP_HOST']变量来判断来访地址,并进行相应的处理,示例代码如下:
    <?php
    if($_SERVER['HTTP_HOST']=="www.123.com"){
    ?>
    <META HTTP-EQUIV="Refresh" CONTENT="1;URL=http://www.123.com/main">
    <?php
    }else if($_SERVER['HTTP_HOST']=="mycalf.com"){
    ?>
    <META HTTP-EQUIV="Refresh" CONTENT="1;URL=http://123.com/main">
    <?php
    }else if($_SERVER['HTTP_HOST']=="www.456.cn"){
    ?>
    <META HTTP-EQUIV="Refresh..." >
    <?php
    }
    ?>

子目录方式(简单直接)

  1. 创建子文件夹:在空间根目录下新建一个文件夹,比如vip。
  2. 上传新程序:将新的建站程序上传到该子文件夹中,从而建立另外一个网站,此时网站的网址形式为www.xuewangzhan.net/vip(假设主域名是www.xuewangzhan.net),需要注意的是,如果主网站与子文件夹中的网站使用的是同一个程序,例如都是wordpress,那么在配置数据库信息时,数据库的表前缀必须不同,比如主网站的表前缀是wp,那么vip文件夹下做的网站的数据表前缀可以写成wp2
方法名称 优点 缺点 适用场景
JavaScript跳转法 实现简单,适合初学者;无需复杂配置 可能会有短暂的跳转延迟;部分浏览器可能不支持或阻止脚本执行 小型个人网站或测试环境
Server.Transfer方法 无页面跳转,用户体验好;不影响搜索引擎收录 仅适用于ASP环境;需要一定的编程基础 中小型企业网站,对SEO有一定要求的站点
利用ASP文件判定域名跳转法 便于集中管理多个站点;灵活性高 路径显示不美观(带子目录名);需要维护大量的重定向规则 多站点管理,尤其是同一台服务器上有多个关联性强的网站
PHP实现方法 功能强大,支持动态内容生成;可扩展性强 依赖PHP环境;代码相对复杂 动态网站开发,需要处理复杂业务逻辑的场景
子目录方式 操作简单,易于理解;无需额外配置 URL结构不够简洁;可能存在样式冲突等问题 临时搭建第二个网站,或者作为主网站的补充页面

相关问答FAQs

Q1: 使用这些方法是否会影响网站的SEO效果?

A: 像Server.Transfer方法不会影响搜索引擎收录,而response.redirect则不一定,其他方法如JavaScript跳转法和利用ASP文件判定域名跳转法等,只要合理设置,也基本不会对SEO产生负面影响,但建议尽量保持URL结构的清晰和简洁,避免过多的重定向和复杂的路径,这样更有利于搜索引擎爬虫抓取和索引页面。

如何一个空间放两个网站-图1
(图片来源网络,侵删)

Q2: 如果虚拟主机不支持子目录绑定怎么办?

A: 如果虚拟主机不支持子目录绑定,可以考虑使用上述提到的JavaScript跳转法、Server.Transfer方法或利用ASP文件判定域名跳转法来实现一个空间放置多个网站,利用ASP文件判定域名跳转法在这种情况下是非常有效的办法,它通过浏览器输入的域名来判断要打开哪个文件夹里的站点,从而实现虚拟放置多个站点的功能

如何一个空间放两个网站-图2
(图片来源网络,侵删)
分享:
扫描分享到社交APP
上一篇
下一篇