This Domain(Admin5.com) is for Sale:
王迅雷的原我、琐碎、秘密、真实的无聊生活...

用ASP或PHP实现两个域名内页之间的301跳转

如果一个网站拥有两个域名:admini5.cn和wangzhan.dngz.net。在网站运营前期,主推admini5.cn,但发展到中期,由于品牌或产品定位的原因,admini5.cn这个域名不再适合当前情况,要更换成wangzhan.dngz.net。作为SEO,我们肯定推荐使用301跳转,当用户访问 admini5.cn时,自动引导用户进入新域名wangzhan.dngz.net,可以通过程序或域名跳转实现301跳转,这样可以将旧域名PR传递到新域名。但是如果用户收藏了旧域名的某个内容页(譬如:admini5.cn/content/20070808.html),通过域名跳转直接引导到 wangzhan.dngz.net首页恐怕会产生较差用户体验,特别是对未及时获知域名更换的用户;最好方式是实现通配,动态的将旧域名某个内页跳转到新域名相同页面的URL,那如何用技术手段实现新旧内页URL之间的301跳转?
即:从admini5.cn/content/20070808.html跳转到 wangzhan.dngz.net/content/20070808.html,并使浏览器返回301代码。

例如:大旗网域名由chinabbs.com换成 daqi.com博客网域名由blogchina.com换成bokee.com有兴趣或者有解决办法的程序员,请留下你的联系方式或者发表评论,一起探讨下关于URL重定向的相关问题。

PHP下的实现方式(参考):.htaccess文件代码如下(wangzhan.dngz.net的.htaccess如此设置):
Options +FollowSymlinksRewriteEngine onrewritecond %{http_host} ^wangzhan.dngz.net [nc]rewriterule ^(.*)$ http://wangzhan.dngz.net/$1 [r=301,nc]

注释1:如果用户访问http://wangzhan.dngz.net/,则跳转至http://wangzhan.dngz.net,且返回301状态码;当用户访问http://wangzhan.dngz.net/post/301.htm,则跳转至http: //wangzhan.dngz.net/post/301.htm,并返回301状态码。

注释2:测试URL:http: //wangzhan.dngz.net/,你可以访问http://wangzhan.dngz.net/post/301.htm我在wangzhan.dngz.net 下配置了.htaccess文件,使其301跳转至http://wangzhan.dngz.net/post/301.htm我的.htaccess 配置实现了由主域名(wangzhan.dngz.net)301跳转至二级域名(wangzhan.dngz.net);

结论:
Options +FollowSymlinksRewriteEngine onrewritecond %{http_host} ^www.admini5.cn [nc]rewriterule ^(.*)$ http://wangzhan.dngz.net/$1 [r=301,nc]

ASP脚本实现301跳转的方法:

ASP/Visual Basic代码
  1. <%if request.ServerVariables("HTTP_HOST")="admini5.cn" or request.ServerVariables("HTTP_HOST")="www.admini5.cn" Then  
  2. if Request.ServerVariables("QUERY_STRING")<>"" Then p="?"  
  3. Response.Status="301 Moved Permanently"  
  4. Response.AddHeader "Location","http://wangzhan.dngz.net"&Request.ServerVariables("SCRIPT_NAME")&p&Request.ServerVariables("QUERY_STRING")  
  5. Response.End  
  6. end if%>  

一、if request.ServerVariables("HTTP_HOST")="admini5.cn" or request.ServerVariables("HTTP_HOST")="www.admini5.cn" Then
当发现客户是用旧域名来访问网站的,则进入转向流程
二、if Request.ServerVariables("QUERY_STRING")<>"" then p="?"
Response.Status="301 Moved Permanently"
当发现页面是含参数的,则加入“?”
发送转向的HTTP状态码301
三、 Response.AddHeader "Location","http://wangzhan.dngz.net"&Request.ServerVariables("SCRIPT_NAME")&p&Request.ServerVariables("QUERY_STRING")
当不含参数时,变量P和REQUEST.ServerVariables都为空
当含有参数时,则生成被请求页的的相对URL。这样就达到了一种效果:无论客户访问哪一页,都会自动转向到另一个页面的同一文件里且包含同一个参数。

举例:www.admini5.cn/go.asp?id=12345会自动301到wangzhan.dngz.net/go.asp?id=12345;
www.admini5.cn/xiaoshuo.asp会自动301到wangzhan.dngz.net/xiaoshuo.asp

标签: 域名, 网站, php, asp, 优化

« 上一篇 | 下一篇 »

相关日志

愤怒的站长们 (浏览: 8538, 评论: 0)
官方尽力改善程序执行效率为WordPress2.4提速 (浏览: 7345, 评论: 0)

引用

点击获得Trackback地址,Encode: UTF-8 点击获得Trackback地址,Encode: GB2312 or GBK 点击获得Trackback地址,Encode: BIG5

评论

网站合作已经是被各网站很好的应用,地方网站更容易进行相关合作

评论者 bet365 时间 2008, January 15, 8:30 PM 引用此文发表评论 #1


发表评论

评论内容 (必填):