我有一个使用 html5mode
设置为 true
的 AngularJS 应用程序。
目前,应用程序显示软 404 页面,路由器中设置了 .otherwise
。
有没有一种方法可以在使用 html5 模式时为了 SEO 提供实际的 404 HTTP 响应?
最佳答案
如果我正确理解你想要什么,你必须执行以下操作:
在其他路径上硬重定向浏览器(绕过 Angular 路由),像这样:
$routeProvider .otherwise({ controller: function () { window.location.replace('/404'); // your custom 404 page // or a non existing page } });
如果您有一个常规的单页应用程序,其中所有服务器请求都重定向到同一个 SPA 入口点,您必须在您的服务器上配置为您的自定义 404 页面创建路由异常(exception),这将还应提供 404 状态。
否则,我看不出在没有外部请求的情况下仅使用 History API 将如何做到这一点,因为 Angular 路由的全部意义在于绕过外部请求。
如果你只想让不存在的路由返回 404,那么你必须配置你的服务器来匹配你所有的 Angular 路由,否则返回 404。
关于javascript - AngularJS html5mode 和硬 404,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27525828/