Js 替换域名并自动跳转

LMS
3.8K+ 6

博客换域名后,很多通过搜索殷勤从原来地址过来的都只能跳到首页,虽然能通过站内搜索重新找到东西,但这毕竟是个糟糕的用户体验。因为只是换域名其他伪静态未做改变,所以找了个办法,用 javascript 替换当前网址里的域名,将原来的 www.happyet.org 替换成现在的 muxer.cn,然后让它自动跳转。

代码入下:

current_url = window.location.href;
function replaceAll(str1,str2,str3){//str1为母字符串,str2为要替换的。str3为替换成的
        var k
        var tmp = str1.split(str2)
        k=tmp[0]
        for(i=1;i<span><</span>tmp.length;i++){
                k+=str3+tmp[i]
        }
        return k
}
target_url = replaceAll(current_url,"www.happyet.org","muxer.cn");
window.location = target_url;

通过上面的代码,就可以将 http://www.happyet.org/ooooxxxx/gaga.html 自动变成 http://muxer.cn/ooooxxxx/gaga.html,只能这么搞了。

这代码放在服务器里传说中的 404 页面内,比如我的 da 主机,根目录下就有个 404.shtml,搞它就好。

目前这代码有个 bug,地址是 index.php? 这种情况的好像会出错,不过还好,最后也能跳到新域名的首页,而且我的博客地址都是伪静态,没有这个问题。

评论里有高人的方法,没试过,只要 replace 函数可以这么用那应该就没错了,俺是业余的也不去查了,老早以前就整个旧域名 301 到新域名了。

var current_url = window.location.href;
target_url = current_url.replace("www.happyet.org","muxer.cn");
window.location = target_url;
THE END

评论 6

  1. whrs
    🏅

    很好,帮大忙了。谢谢

  2. 这样更简单
    🏅

    这样更简单

    try
    { if( self.location.hostname == "www.google.com" ) {
    window.location.href = "http://www.google.com.hk"+location.pathname;
    }
    else {document.write ("")}
    } catch(e) {}

  3. yiranphp
    🏅

    var current_url = window.location.href;
    target_url = current_url.replace("www.happyet.org","muxer.cn");
    window.location = target_url;

    这样更简单点吧

  4. 旧地址全部 301 过来比较好吧,对搜索引擎来说。

    1. 现在是全站301了,这个只是看着好看而已呵呵。

发表评论

Submit