网站更换域名及实现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(),清除所有缓存并关闭缓存,这样再设置头部信息就没问题了。