Javascript 如何从SPA返回HTTP 404状态代码?
我看到了一些像这样的问题,但没有一个是专门解决这个问题的 因此,谷歌是和 我的AngularJS(但可以是任何JS东西)网站正在使用URL来确定API路由。然后执行API调用,然后相应地呈现内容 然而,现在谷歌将该网站标记为“被黑客入侵”,因为每个URL都返回HTTP 200状态码(example.com/get-free-viagra)。很好,但是我怎么退404呢?或者至少告诉谷歌这是一个找不到的页面?他们似乎没有提供这些信息,我很担心搜索引擎优化 我想到了一些想法:Javascript 如何从SPA返回HTTP 404状态代码?,javascript,angularjs,html,seo,single-page-application,Javascript,Angularjs,Html,Seo,Single Page Application,我看到了一些像这样的问题,但没有一个是专门解决这个问题的 因此,谷歌是和 我的AngularJS(但可以是任何JS东西)网站正在使用URL来确定API路由。然后执行API调用,然后相应地呈现内容 然而,现在谷歌将该网站标记为“被黑客入侵”,因为每个URL都返回HTTP 200状态码(example.com/get-free-viagra)。很好,但是我怎么退404呢?或者至少告诉谷歌这是一个找不到的页面?他们似乎没有提供这些信息,我很担心搜索引擎优化 我想到了一些想法: 不推荐我当前的设置(我
- 不推荐我当前的设置(我使用AWS S3来托管静态网站),而是使用expressJS框,使用中间件执行API调用并在需要时返回404。但是,我不喜欢这种方法,因为它会损害性能(每个前端请求两个API调用)
- 使用
重定向到正确的404页面。然而,我不确定谷歌是否会遵循它,它已经不鼓励改变URLwindow.location
- 在未找到的页面上使用
,但我觉得这还不够rel=“nofollow”
谷歌紧随其后。鉴于我因在错误的框中添加文本而被否决,我想我应该留下一条评论。。。你在这个问题上有什么进展吗?我们也有同样的问题,不是真的。我最终按照第一个选项所说的做了。您是否注意到使用该方法时性能下降了?非常轻微,因为两个框都位于AWS的同一区域,我正在做一个HEAD请求,而不是GET,我调整了API,以便只戳数据库以获取记录。解决您问题的另一个可能的解决方案是:从服务器重定向或服务客户端404?如果您重定向到另一个URL,Google如何知道您访问的URL是404?您的后端服务器可以在特定的URL(比如/404.html)下运行用404代码而不是前端应用程序响应