javascript - AngularJS html5mode 和硬 404

标签 javascript angularjs seo http-status-code-404

我有一个使用 html5mode 设置为 true 的 AngularJS 应用程序。

目前,应用程序显示软 404 页面,路由器中设置了 .otherwise

有没有一种方法可以在使用 html5 模式时为了 SEO 提供实际的 404 HTTP 响应?

最佳答案

如果我正确理解你想要什么,你必须执行以下操作:

  1. 在其他路径上硬重定向浏览器(绕过 Angular 路由),像这样:

    $routeProvider
        .otherwise({
            controller: function () {
                window.location.replace('/404'); // your custom 404 page
                                                 // or a non existing page
            }
        });
    
  2. 如果您有一个常规的单页应用程序,其中所有服务器请求都重定向到同一个 SPA 入口点,您必须在您的服务器上配置为您的自定义 404 页面创建路由异常(exception),这将还应提供 404 状态。

否则,我看不出在没有外部请求的情况下仅使用 History API 将如何做到这一点,因为 Angular 路由的全部意义在于绕过外部请求。

如果你只想让不存在的路由返回 404,那么你必须配置你的服务器来匹配你所有的 Angular 路由,否则返回 404。

关于javascript - AngularJS html5mode 和硬 404,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27525828/

相关文章:

javascript - 将鼠标悬停在图标上时按钮文本模糊

angularjs - 从Azure token 解析用户组信息?

seo - Googlebot 真的不等待 AJAX 请求完成吗?

angular - 使用 Angular Universal 时客户端渲染一些组件

javascript - 部分匹配字符串与正则表达式

javascript - 尝试使用 jQuery 修复客户端图像的方向。 [EXIF 未定义]

javascript - 在服务器上推送新版本后刷新客户端浏览器窗口

php - 如何从 ionic angularjs 在 php 服务器中发布动态二维数组并保存到 mysql 数据库中?

python - 在python中使用Selenium使用ng-model定位元素

seo - 搜索引擎如何将 url 链接到其 map View 的街道地址?