简单实用的javascript重定向,js将旧域名网址目录跳转到新网址

简单实用的JS重定向,将旧域名全部网址指向新网址

为什么要重定向

人生路漫长,我们不断最求美好的东西。在站长们漫长的建站路上少不了换域名的事儿,敢问谁没少换过域名,记得蓝冰曾经就是换域名比换模板还要勤快。换了域名后我们就要考虑一些问题权重转移、收录转移、导流、引导用户到新的网址。

如何重定向

一般不推荐使用JS进行重定向,但是JS实用性高不拘泥平台限制而且操作也不难,考虑一些情况比较特殊所以可能比较适用,于是还是在此分享,当然建议最好是使用服务器服务进行301永久重定向,比如使用Apache的用户请参阅Apache .htaccess教程Apache网址重写指南。(如果不清楚自己服务器配置可以咨询服务器供应商,当然如果觉得麻烦可以使用这里分享的JS重定向。)

这段JS重定向怎么用

这段JS重定向的代码可以帮你将你站点所有旧地址跳转到新域名对应的地址,例如http://teai.org和他的子目录http://teai.org/about及其他所有页面指向到https://yijile.com对应页面,跳转后http://teai.org指向到https://yijile.com,而http://teai.org/about将指向到https://yijile.com/about页面,完全无缝隙跳转只要在需跳转的域名放置代码和配置好域名即可,如果这段重定向JS放在页面头部那么会在加载时就执行跳转,如果放在页面底部那么可能是页面加载的差不多的时候执行跳转(这样会有些不友好,当整个页面都加载好了突然闪一下,虽然页面内容没有变只变了地址栏的地址。)

JS重定向代码

1
<script language="javascript">     
2
if (document.domain =="teai.org")     
3
        this.location = "https://yijile.com" + this.location.pathname + this.location.search;     
4
</script>

JS重定向代码解说

寒叶是个JS盲,可以说对JS一窍不通,但是这段重定向JS还有很好理解的,第一行大志就是查找当前域名是否为teai.org如果是就执行第二行,第二行大致意思就是将之前teai.org替换为yijile.com然后抓取域名后的路径并执行。虽然这段解说非常不官方,但是希望可以服务有需要的网友们

多个域名跳转到指定域名

1
<script>
2
    if (document.domain =="www.yijile.com" || document.domain =="www.teai.org"  || document.domain =="teai.org")
3
            this.location = "https://yijile.com" + this.location.pathname + this.location.search;     
4
</script>

会将www.yijile.com、www.teai.org、teai.org的http和https跳转到https://yijile.com,会自动带上当前浏览路径,代码可以全站使用自动识别。

优化版:多个域名跳转到指定域名

1
<script>
2
    if (document.domain !="yijile.com")
3
            this.location = "https://yijile.com" + this.location.pathname + this.location.search;     
4
</script>

访问当前页面只要域名不是yijile.com都会自动跳转到https://yijile.com
比如访问http://www.yijile.com/log/595.html会自动跳转到https://yijile.com/log/595.html

http强制js跳转到https

这里会有一个问题,其他域名可以跳转到htpps的指定域名,但是指定域名的http却无法跳转本段代码来源

1
<script type="text/javascript">
2
    var targetProtocol = "https:";
3
    if (window.location.protocol != targetProtocol)
4
        window.location.href = targetProtocol +
5
        window.location.href.substring(window.location.protocol.length);
6
</script>