asp网站301定向跳转方法

ASP语言下,我们需要在默认首页,如index.asp顶部最上方加入以下代码:

<%
Dim dm,sn
dm=Request.ServerVariables("Server_name")  '获取域名
'这里的3是指www的长度
if left(dm,3)<>"www" then
Response.Status="301 Moved Permanently" 
Response.AddHeader "Location", "http://www.zhaoan.org"
Response.End
end if
%>

这里的代码是经过flymorn加工后的,您也可以根据实际需要对本代码进行适当的修改以适合你需求的样式。本代码自动校验没有输入www的,301跳转到www.zhaoan.org这个网址上,从而使得网页权重得到累加,达到SEO优化的目的。

但这里出现一个问题,如果有链接指向到http://www.zhaoan.org/index.asp(比如站内链接),那么搜索引擎也同样会给这个网址形式加分,虽然index.asp是默认首页,但我们希望的是把所有权重都给与http://www.zhaoan.org这个形式。有人说,这两个形式不是都一样吗?不一样。比如:http://www.023ff.com的PR为0,而http://www.023ff.com/index.asp的PR为2。从这点可以看出,SE是给与是否有index.asp的网址形式以不同的权重的。而使用Request.ServerVariables("SCRIPT_NAME")或Request("url")获取到的后缀无论输入时是否带有index.asp都一律返回index.asp,从而导致无法判断,也无法使用301重定向,当然这是指仅asp语言环境。

目前解决方法就是,利用js获取当前网址window.location.href,然后把这个当前网址写入cookies;asp读取这个cookies,从而判断网址中是否包含index.asp,如果包含,就使用301重定向。建议:在任何链接中避免有直接指向index.asp的形式,包括外链及内链,尤其是内链。这只是一个折中的方法。针对该问题,希望与各位高手一起讨论。如果您有其他解决的方法,请留下您的评论。

利用js通过cookies给asp传递网址的代码如下:

<script language="javascript">
var url=window.location.href.toLowerCase(); //小写
document.cookie = "urlck" + "=" + escape(url);
</script>
<%
Dim sn
sn=request.cookies("urlck")  '获取后缀
response.cookies("urlck")=""  '清空cookies
 
if right(sn,11)="default.asp" then
Response.Status="301 Moved Permanently" 
Response.AddHeader "Location", "http://www.zhaoan.org"
Response.End
end if
%>

但是很遗憾,如果这些网址形式不是实际上的人为输入,而是搜索引擎访问的结果,搜索引擎又是忽略JS的,也就是说,js里赋值的cookie并不能被SE识别,从而导致也无法使用301跳转。这个问题有待解决。

如果你的网站是用php写的,可以参考这里php网站301定向跳转方法

zhaoan

一个不起眼的IT工作者,从事过的行业较多,医疗保健、医院、月子会所、机电、重卡、软件,涉及的岗位也较多,零售、市场、平面设计、网站设计、UI设计、前端开发、后端开发、网络布线、设备维护、服务器维护、网络推广、网站运营、新媒体运营、部门管理等等,每个岗位工作基本都能独立完成,但是涉及面广导致都不精通,学习还在继续中。。。

You may also like...