简单利用404页面做全站301重定向

文章类型:常见问题    发表2014-01-26   文章编辑:怒熊网络 · 一站式互联网+技术服务商!   阅读:394

最近遇到一个使用国内虚拟空间又不支持伪静态的客户需要更换新域名,但由于新域名未备案无法直接绑定使用,故暂时只能将网站数据放在国外使用新域名,老域名做全站301重定向至新域名。

我们都知道服务器的话很容易做,直接在IIS里面或者伪静态里面设置即可,如果做了很多限制的虚拟空间如何做全站301重定向呢?下面是直接利用404错误页来做301全站重定方法:(前提是可以自行设置404错误页面)。

1,将空间404错误页设置为404.asp;
2,将空间默认首页设置为404.asp;
3,将以下代码保存为404.asp,并上传至旧空间根目录:

以下是引用片段:
<%
url1='http://www.71wl.com'  ’原域名
url2='http://www.studstu.com'  ’新域名
u1=Request.ServerVariables('SERVER_NAME')’取得网址域名地址
u2=Request.ServerVariables('URL')’获取 .com/net/等后面的UL地址
if Trim(Request.QueryString)<>'' then’如果有变量参数,就获取,没有就跳过
u3='?'&Trim(Request.QueryString)
end if
url='http://'&u1&u2&u3   ’将获取到如http://www.71wl.com/404.asp?404;http://www.71wl.com:80/news/689.html
url=replace(url,url1&'/404.asp?404;','')
url=replace(url,url1&':80',url2)
url=replace(url,url1&'/404.asp',url2) ’针对首页301跳转
url=replace(url,'index.asp','')
’Response.write(url)
Response.Status='301 Moved Permanently'
Response.AddHeader 'Location',url
 
if request.ServerVariables('HTTP_HOST')='studstu.com'  then
Response.Status='301 Moved Permanently'
Response.AddHeader 'Location','http://www.studstu.com'
Response.End
end if
%>

注意:将以上原域名和新域名都更换成你自己的。

4,访问试试吧,大功告成。

但是,如果虚拟空间连404页面都无法自行设置呢?又或者404页面不能设置为ASP格式,只能HTML或HTM静态格式怎么办?这样的话只能利用JS全站跳转了,虽然不是301重定向,但还是能保留住原域名流量的。下面是404.html格式,用法跟上面的一样。

以下是引用片段:
<script language='&#106avascript' type='text/&#106avascript'>
        <!--
        var abc = 'www.studstu.com';
        var qwe = window.location.host;
        if(qwe != abc){
        window.location = 'http://' + abc + window.location.pathname + window.location.search + window.location.hash;
        }
        -->
        </script>

用JS全站跳转的话只需要输入一个新域名就行。