首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >AngularJS html5mode和hard 404

AngularJS html5mode和hard 404
EN

Stack Overflow用户
提问于 2014-12-17 20:37:36
回答 3查看 910关注 0票数 3

我有一个与html5mode一起工作的AngularJS应用程序设置为true

目前,该应用程序显示了一个软404页面,其中包含路由器中的.otherwise设置。

有没有办法,我可以提供实际的404HTTP响应,为了搜索引擎优化的缘故,同时使用html5mode?

EN

回答 3

Stack Overflow用户

发布于 2014-12-17 21:50:34

如果我没弄错你想要什么,你必须做以下事情:

  1. 在否则路径上硬重定向浏览器(绕过角度路由),如下所示:

$routeProvider .otherwise({ controller: function () { window.location.replace('/ 404 ');//您的自定义404页面//或者不存在的页面} });

  • 如果您有一个常规的单页面应用程序,其中所有服务器请求都被重定向到相同的SPA入口点,则必须在服务器上进行配置,以便为您的自定义404页面创建路由例外,该页面也将以404状态提供服务。

否则,我不明白你如何使用History API,没有外部请求,因为它在angular路由中的全部要点是绕过外部请求。

如果您只希望不存在的路由返回404,那么您必须配置您的服务器以匹配所有的angular路由,否则返回404。

票数 2
EN

Stack Overflow用户

发布于 2015-11-15 06:05:39

搜索引擎使用_escaped_fragment_通过预先渲染的页面与SPA应用程序协同工作。您可以使用Prerender.io (或者简单地说是PhantomJS)为搜索引擎生成任何状态代码,比如下面的https://prerender.io/documentation/best-practices

但是这个模式已经被Google:http://googlewebmastercentral.blogspot.ru/2015/10/deprecating-our-ajax-crawling-scheme.html弃用了,此时Google试图用通常的爬行模式来理解你的JS。

硬重定向到404.html页面不是一个好的做法: url必须保持不变,就像https://stackoverflow.com/somepage一样

您可以尝试具有服务器渲染功能的Angular2:https://docs.google.com/document/d/1q6g9UlmEZDXgrkY88AJZ6MUrUxcnwhBGS0EXbVlYicY/edit

票数 0
EN

Stack Overflow用户

发布于 2017-11-08 13:59:52

你必须让你的服务器发出404。在这里,Angular无论如何都帮不上忙。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27525828

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档