mau*_*tin 6 seo vue.js nuxt.js
我正在寻找一种在使用 Nuxt.Js 的页面不存在时始终重定向到主页的方法。
几天前,我们的站点地图生成出现了一些问题,我们提交了不存在的错误网址。Google Search Console 显示大量 404,我们希望通过 301 重定向到主页来修复它们。
我试过这个
created() {
this.$router.push(
this.localePath({
name: 'index',
query: {
e: 'er'
}
})
)
}
Run Code Online (Sandbox Code Playgroud)
虽然页面成功重定向到主页,但我认为谷歌会遇到这个问题,因为页面最初是用 404 呈现的。
我也试过这个
async asyncData({ redirect }) {
return redirect(301, '/el?e=rnf')
},
Run Code Online (Sandbox Code Playgroud)
但没有用(与 fetch 相同)
关于解决这个问题的任何想法?
如果找不到页面,切勿重定向到主页,正如您在 Google 的文章中看到的那样:创建自定义 404 页面
相反,重定向到 404 错误页面
只需使用error
async asyncData({ params, $content, error }) {
try {
const post = await $content('blog', params.slug).fetch()
return { post }
} catch (e) {
error({ statusCode: 404, message: 'Post not found' })
}
}
Run Code Online (Sandbox Code Playgroud)
不要忘记在布局文件夹中创建错误页面error.vue
小智 4
您可以在 nuxt 中创建默认的 404 页面 - 只需将一个名为 _.vue 的文件放在 ~/pages/ 目录中即可。这是你的 404 页 :)
或者您可以使用另一种方法来创建此类页面: https: //github.com/nuxt/nuxt.js/issues/1614但我还没有尝试过
然后在此页面添加一个简单的404-redirect-middleware:
// !!! not tested this code !!!
middleware: [
function({ redirect }) {
return redirect(301, '/el?e=rnf')
},
],
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
12172 次 |
最近记录: |