【问题标题】:AngularJS SEO Page 404 Header Status CodeAngularJS SEO 页面 404 标头状态代码
【发布时间】:2015-05-19 19:30:20
【问题描述】:

我们正在一个使用 Symfony2 + AngularJS 的项目中工作。 每个都在不同的域中(Symfony2 的 api.domain 和 Angular 项目的 www.domain)。

现在我们专注于 SEO 部分。我们使用 Prerender.io 创建静态快照,为爬虫提供良好的 HTML Raw 页面。

但问题是在 Angular 上提供“404 页面”时:

$urlRouterProvider
                  .otherwise('/404');

问题是,我们所做的是将一个不存在的页面重定向到我们的“404 页面”,并带有 200 个标头状态代码,这对于 SEO 目的非常不利......

由于 AngularJS 无法生成,我们已经尝试了 2 件事:

1.通过 htaccess / Apache 使用重定向:

 RedirectMatch 404 "/404"

2。调用向我们返回 404 错误的 Web 服务:

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html>
  <head>
    <title>404 Not Found</title>
  </head>
  <body>
    <h1>Not Found</h1>
    <p>The requested URL /do-not-access was not found on this server.</p>
  </body>
</html>

对于 AngularJS 方面,我们尝试抛出标题状态代码但没有成功:

return $http.get(ENV.apiEndpoint + '/do-not-access');

这些都不适合我们...

我们还考虑使用第二个“404 页面”。这个想法是通过带有 404 状态代码的 htaccess 将我们的第一个 404 页面重定向到第二个 404 页面,但我们认为由于 AngularJS 内部重定向,这将不起作用:

200 -> 301 -> 404

PS:我发现:AngularJS html5mode and hard 404 上面写着“我们必须配置我们的服务器以使您的自定义 404 页面出现路由异常”,但我们真的不知道该怎么做...

我们是否集中注意力不集中?

还有其他选择吗?

我们该如何处理?

有什么想法吗?

【问题讨论】:

    标签: angularjs apache .htaccess seo http-status-code-404


    【解决方案1】:

    prerender.io 似乎提供了一种处理 http 标头状态的方法。

    例如,对于 404 页面,我们只需将此元标记添加到我们的头部标记中

    <meta name="prerender-status-code" content="404">
    

    文档:https://prerender.io/documentation/best-practices

    【讨论】:

    • 但是 prerender.io 不是免费的。如果不使用 prerender.io,我该如何解决这个问题?谢谢你。
    猜你喜欢
    • 2016-11-03
    • 2014-05-09
    • 2018-03-07
    • 2011-08-01
    • 2011-11-21
    • 2011-11-22
    • 1970-01-01
    • 2019-03-10
    • 1970-01-01
    相关资源
    最近更新 更多