我有一个与html5mode
一起工作的AngularJS应用程序设置为true
。
目前,该应用程序显示了一个软404页面,其中包含路由器中的.otherwise
设置。
有没有办法,我可以提供实际的404HTTP响应,为了搜索引擎优化的缘故,同时使用html5mode?
发布于 2014-12-17 21:50:34
如果我没弄错你想要什么,你必须做以下事情:
$routeProvider .otherwise({ controller: function () { window.location.replace('/ 404 ');//您的自定义404页面//或者不存在的页面} });
否则,我不明白你如何使用History API,没有外部请求,因为它在angular路由中的全部要点是绕过外部请求。
如果您只希望不存在的路由返回404,那么您必须配置您的服务器以匹配所有的angular路由,否则返回404。
发布于 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
发布于 2017-11-08 13:59:52
你必须让你的服务器发出404。在这里,Angular无论如何都帮不上忙。
https://stackoverflow.com/questions/27525828
复制相似问题