13046685510

Asp代码的301跳转

实现301跳转有多种方法,包括域名DNS实现URL转发、服务器的rewrite设置、程序实现。其中实现起来最方便的就是域名DNS实现URL转发。


但因为某些原因,域名DNS实现URL转发功能被禁止使用了,而服务器的rewrite设置只有独立主机及一小部分虚拟主机能够实现,在不支持rewrite的情况下,只能程序实现301跳转。


下面的代码主要针对新旧2个域名同时绑定一个空间,需要将旧域名跳转到新域名时适用,在每个页面头部加入以下代码:


if request.ServerVariables("Server_Name")<>"www.domain.com" then
Response.Status="301 Moved Permanently"
if request.ServerVariables("QUERY_STRING")<>"" then
Response.AddHeader "Location","http://www.domain.com"&request.ServerVariables("PATH_INFO") &"?"& request.ServerVariables("QUERY_STRING")
else
Response.AddHeader "Location","http://www.domain.com"&request.ServerVariables("PATH_INFO")
end if
response.end
end if


301跳转代码的说明:


实际使用中,Response.AddHeader这行不要换行,否则会出现500错误。


因为博客系统的关系,所有双引号自动变成了大写,直接copy使用将出错,请在copy以上代码后,将所有双引号改成英文双引号;


www.domain.com替换成你跳转后的域名;


request.ServerVariables("PATH_INFO")表示获取URL;


request.ServerVariables("QUERY_STRING")表示获取URL后面的动态参数;


至于为什么还要判断request.ServerVariables("QUERY_STRING")是不是为空?是因为否则的话不管是不是存在URL后面的动态参数,URL最后都会有一个问号,虽然不影响页面显示,但对于URL规范来说,不太严谨,且不利于SEO。


经过以上代码判断,不但转换域名,还能直接跳转到相对应的页面,通过代码彻底实现301跳转;


以上是Asp代码的301跳转,Php等程序原理相同。

7x24小时服务专线 130-4668-5510
官方微信 关闭