如何在错误404页面上短暂延迟后自动重定向?

时间:2013-08-03 05:13:27

标签: html css .htaccess redirect

我已设置自定义404页面here

我已编辑.htaccess文件以使404页面正常工作。

我想要的是将访问者自动重定向到主页 在404页面上短暂延迟后,当他点击不存在的链接时。

3 个答案:

答案 0 :(得分:14)

在404页面中使用元刷新标记

<meta http-equiv="refresh" content="3;URL='http://www.example.com/404.html'" />

它将根据内容值(以秒为单位)和您要重定向的网址

重定向

答案 1 :(得分:4)

您应该使用客户端重定向方法来应用适当的延迟。如果您想支持已禁用 JavaScript 的浏览器,只需将META refresh粘贴到noscript元素中即可。最好将其放在noscript元素中,因为搜索引擎会对通常的META refresh链接给予惩罚。

如果重定向是永久性的,我建议您也使用canonical标记来保留缺少网页的链接。

这个 JavaScript redirect生成器是一个很好的方法。从那里粘贴的代码。它还有一个IE 8和更低的修复程序来传递HTTP referer,这对流量分析很有用。

<!-- Pleace this snippet right after opening the head tag to make it work properly -->

<!-- This code is licensed under GNU GPL v3 -->
<!-- You are allowed to freely copy, distribute and use this code, but removing author credit is strictly prohibited -->
<!-- Generated by http://insider.zone/tools/client-side-url-redirect-generator/ -->

<!-- REDIRECTING STARTS -->
<link rel="canonical" href="https://example.com/"/>
<noscript>
    <meta http-equiv="refresh" content="5;URL=https://example.com/">
</noscript>
<!--[if lt IE 9]><script type="text/javascript">var IE_fix=true;</script><![endif]-->
<script type="text/javascript">
    var url = "https://example.com/";
    var delay = "5000";
    window.onload = function ()
    {
        setTimeout(GoToURL, delay);
    }
    function GoToURL()
    {
        if(typeof IE_fix != "undefined") // IE8 and lower fix to pass the http referer
        {
            var referLink = document.createElement("a");
            referLink.href = url;
            document.body.appendChild(referLink);
            referLink.click();
        }
        else { window.location.replace(url); } // All other browsers
    }
</script>
<!-- Credit goes to http://insider.zone/ -->
<!-- REDIRECTING ENDS -->

答案 2 :(得分:3)

只需在404错误页面添加一点PHP。

我假设您在htaccess文件ErrorDocument 404 /error/404/

中有此内容

所以在/error/404上,您可以在任何地方执行以下操作。

<?php
    header("refresh:5; url=/wherever.html"); 
?>

请务必将5更改为您的秒数,并wherever.html更改为您的拍子。