自定义 404 页面

Posted

技术标签:

【中文标题】自定义 404 页面【英文标题】:Customizing 404 page 【发布时间】:2018-11-16 00:10:24 【问题描述】:

我有以下 javascript 代码,我将旧链接动态重定向到新链接。

有时 newLink 不存在,而不是获取 404 页面,如果找不到 URL,我想自定义我自己的页面。

知道如何在我的代码中添加此条件吗?

<script>
setTimeout(function()
 $('a[href="oldLink"]').attr('href','dir/newLink)
 , 1000);
</script>

编辑:我在 Rstudio 上运行此代码,我是 javascript 新手,我没有服务器,因为我在本地使用 Rmarkdown 生成 html 页面。

谢谢!

【问题讨论】:

这是服务器端的典型任务。 您可以从您的网络服务器设置中编辑您的默认 404 页面 实际上我在 Rstudio 上运行这段代码,我是 javascript 新手,我没有服务器,因为我在本地使用 Rmarkdown 生成 html 页面 Javascript 正在客户端运行,您的客户端不知道服务器何时运行。唯一的方法是通过 ajax 请求测试服务器是否可用 只是说,.attr('href','dir/newLink) 缺少一个'。无论如何,我同意这是服务器端要做的事情:***.com/questions/3397868/… 【参考方案1】:

您可以通过以下代码实现。有一个缺点是您必须始终检查链接是否存在,如果对您来说可以,那么这对您来说是完美的解决方案。

$('body').append('<div id="temp-div" style="display:none"></div>');
    var url = 'dir/newLink';
    $('#temp-div').load(url, function (a, b, c) 
    if (c.status == 404)
        $('a[href="oldLink"]').attr('href', 'YOUR_CUSTOM_404_LINK');
    else
       $('a[href="oldLink"]').attr('href', url);
    $('#temp-div').remove();
);

【讨论】:

感谢您的回答,这似乎很连贯,我尝试了您的代码以获取不存在的链接,但我总是出现 404 错误页面。可能是 c.status 可能有其他错误值? 404 表示找不到页面/链接 - 对于不存在的链接,它将始终给出 HttpStatus 404 我在本地工作,我没有本地主机,我有静态 html 文件夹,这是我的目录。即使使用静态 HTML 页面,c.status 也总是应该工作吗? Else 可以工作,但 IF 条件不正常(如果找不到页面,我会将链接重定向到 google 页面,但我总是找到 404 页面) 也许条件应该是该目录中是否存在 url 我尝试了 url.exists() 而不是 c.status ==404 但它不起作用

以上是关于自定义 404 页面的主要内容,如果未能解决你的问题,请参考以下文章

Google 404 和 .NET 自定义错误页面

nginx 404重定向到自定义页面

云服务器自定义网站404页面不生效

IIS配置404页面配置,IIS自定义404页面

如何使用 Codeigniter 在自定义 404 页面中重定向 404 错误?

eyoucms自定义404页面