日期:2014-05-17  浏览次数:20669 次

网站更换域名及实现ASP|PHP|JSP|HTML 301跳转
准备修改疾控家园论坛的目录,将原来的http://www.cdcman.com/bbs/目录改成http://www.cdcman.com/,现收集一篇文章。

  1、用HTML
  以下是代码片段:
  <html>
  <head>
  <metahttp-equiv=”Refresh”content=5;url=http://www.cdcman.com/bbs>
  </head>
  <body>
  Loading…
  </body>
  </html>
  
  上面代码意思为:则会在5秒之后重定向到http://www.cdcman.com/bbs;如果http://www.cdcman.com/bbs为本身,则每5秒自动刷新1次;如果content=0,则立即重定向。
  
  2、用asp
  
  以下是代码片段:
  
  <%@Language=”VBScript”%>
  <%
  Response.Status=“301MovedPermanently”
  Response.AddHeader“Location”,“http://www.cdcman.com/bbs”
  %>
  
  或者在空间不支持.htaccess文件,可以通过以下事项
  
  在index.asp或default.asp的最顶部加入以下几行:
  
  <%
  Response.Status="301MovedPermanently"
  Response.AddHeader"Location","http://www.cdcman.com/bbs/"
  Response.End
  %>
  3.用ASP.NET
  
  以下是代码片段:
  <scriptrunat=”server”>
  privatevoidPage_Load(objectsender,System.EventArgse)
  {
  Response.Status=“301MovedPermanently”;
  Response.AddHeader(”Location”,”http://www.cdcman.com/bbs“);
  }
  </script>
  
  ps:和方法二含义一样
  
  4、:用js
  
  以下是代码片段:
  <scriptlanguage=”javascript”>
  url=window.location.href;
  url=url.replace(”http://www.music.cdcman.com/bbs”,”http://www.cdcman.com/bbs“);//把网址代换
  window.navigate(url);
  </script
  
  5、用PHP
  
  如果空间不支持.htaccess文件,可以通过php代码来进行301重定向。
  
  在index.php的最顶部加入以下几行:
  
  <?php
  header("HTTP/1.1301MovedPermanently");
  header("Location:http://www.cdcman.com/bbs/");
  exit();
  ?>6、空间支持
  用301智能重定向,空间支持.htaccess文件情况下!
  
  作用:域名更换后旧域名的所有地址自动跳转到新的域名,就是说所有ttttt.com的数据会自动跳转到vvvvv.com,如ttttt.com/rewrite.html会转到vvvvv.com/rewrite.html
  用法:将下面的代码保存为.htaccess上传到旧域名空间根目录
  
  
  RewriteEngineon
  RewriteRule^(.*)$http://www.cdcman.com/bbs/$1[R=301,L]
  
  
  如果需要跳转到首页,将“rewriteRule^(.*)$http://www.cdcman.com/bbs/$1[R=301,L]”的“$1”删除即可
  
  
  其他:
  多个域名绑一个站怎么做301:如a.com,a.net,www.b.net和www.a.com都是绑在一个站,为了网址规范化都要跳转到www.a.com这个主域名上,这时不能光写上面的代码,否则就成循环跳转了,要进行条件判断,即对主机头不是www.a.com才转向,以ASP为例:
  IFRequest.Url.Host<>"www.a.com"THEN
  stringnewurl="http://www.a.com"&Request.Url.PathAndQuery
  Response.Status="301MovedPermanently"
  Response.AddHeader"Location",newurl
  ENDIF
  
  当然这种方法很麻烦,要在每个动态文件中都要加这代码才行,这种情况很少吧,因为虚拟主机都可以选择更多做301跳转方法,肯定有更适合的。
  
  Cannotmodifyheaderinformation-headersalreadysentby...错误
  http头部信息已经发送给客户端了,当然就不能再修改头部状态码进行301了。这种情况是因为有HTML实质内容的输出,所以转向代码要放在HTML 输出之前。当然其它情况也能造成输出,以PHP为例,如文件<?php...?>之外有空白行,特别是include或者require的文件,这有可能导致输出,可以开启缓存ob_start();只要在转向之前缓存不满,网页就不会被发送。或者在跳转前运行ob_end_clean(),清除所有缓存并关闭缓存,这样再设置头部信息就没问题了。