当路由不匹配时,有没有办法在角度 5 中设置 404 http 标头?
Posted
技术标签:
【中文标题】当路由不匹配时,有没有办法在角度 5 中设置 404 http 标头?【英文标题】:Is there a way to set 404 http header in angular 5 when route not matched? 【发布时间】:2018-07-03 02:32:16 【问题描述】:当没有路由匹配我的数组时,我想在当前页面上设置一个标题 404。
否则,我认为这将是 SEO 中的一个问题,并且未知页面也会被添加到搜索引擎中。
【问题讨论】:
您的应用使用什么服务器? IIS? 不,它的 apache。 【参考方案1】:Angular 有一个路由路径 - **
,如果没有匹配的路由,它将被访问。您可以使用此路径显示404 error page
组件。
path: '**', component: Error404Component
【讨论】:
这仍然在 http 标头中返回 200(所以它只是一个“软 404”) 这会返回 200,因为找到了 Error404Component。您无法收到错误 404,因为 javascript 适用于路由,而不适用于服务器 完全有可能让 404 页面返回 http 404。这需要从后端向 js 注入信息。示例:blog.thecodecampus.de/…、github.com/angular/universal/issues/667 -1 因为该问题询问的是 http headers 并且被明确标记为“http-status-code-404”。你的回答没有解决这个问题。正如提问者所说,您确实需要为 404 页面返回 404,否则爬虫/扫描仪会被您的网站混淆。 第一次出现的问题是另一个问题。第二个答案也表明了这一点。已编辑某些内容,但未保存历史记录。比较问题的答案,它们不再匹配了【参考方案2】:您可以这样做,在您的 rout.ts 文件中添加以下内容并创建 notfoundComponent
path: '404', component: NotFoundComponent,
path: '**', redirectTo: '/404'
or you can do directly
path: '**', component: NotFoundComponent
【讨论】:
以上是关于当路由不匹配时,有没有办法在角度 5 中设置 404 http 标头?的主要内容,如果未能解决你的问题,请参考以下文章