我正在尝试重定向到使用router.beforeEach全局挂钩未找到的页面上的404.html ,但没有太大成功(使用Vue和Vue-Router1.0):
router.beforeEach(function (transition) {
if (transition.to.path === '/*') {
window.location.href = '/404.html'
} else {
transition.next()
}
});
Run Code Online (Sandbox Code Playgroud)
404.html插入不存在的路径时,这不会重定向到页面,只是给我一个空片段.只有在硬编码some-site.com/*时,它才会重定向到预期的some-site.com/404.html
我确信这里有一些非常明显的东西,我忽略了,但我无法弄清楚是什么.
请注意,我正在寻找的是重定向到新页面,而不是重定向到另一个路由,这可以通过使用router.redirect这些片段轻松实现:
router.redirect({
'*': '404'
})
Run Code Online (Sandbox Code Playgroud)
在我身上router.map,我可以拥有以下内容:
router.map({
'/404': {
name: '404'
component: {
template: '<p>Page Not Found</p>'
}
}
})
Run Code Online (Sandbox Code Playgroud) 我看到了这样的一些问题(就像这一个),但没有一个问题具体解决这个问题.
因此Google 现在支持SPA,大多数Web浏览器都支持HTML5 pushState.
我的AngularJS(但可能是任何JS的东西)网站正在使用URL来确定API路由.然后它执行API调用,然后相应地呈现内容.
但是,现在Google将此网站标记为"被黑客入侵",因为每个网址都会返回HTTP 200状态代码(包含example.com/get-free-viagra).公平,但我如何归还404?或者至少告诉谷歌这是一个未找到的页面?他们似乎没有提供这些信息,我非常担心SEO.
我想到了一些想法:
window.location重定向到一个适当的404页.但是,我不确定Google是否会遵循它,并且已经不鼓励更改URL.rel="nofollow"未找到的页面,但我觉得这还不够.我现在正沮丧地倾向于第一种选择.
问题:使用META REFRESH重定向网络流量的SEO后果是什么?
详细信息:我正在使用迁移到新地址的旧静态站点.我正在使用所有静态页面上的元刷新将流量重定向到新站点,如下所示:
<meta HTTP-EQUIV="REFRESH" content="0; url=http://www.newsite.com/">
Run Code Online (Sandbox Code Playgroud)
当然,我宁愿直接将重定向写入Apache文件(或.htaccess文件),但由于某些服务器的怪异程度超出了我的控制范围,我仍然坚持使用meta刷新.
所以我想知道后果是什么?该网站的搜索排名是否会受到影响?新网站会被编入索引吗?我已经读过谷歌(等人)会将刷新视为正确的301重定向,只要它设置为0秒(任何更长的时间将被视为垃圾邮件).分析将如何受到影响?
这里的真实行为是什么?有什么想法吗?
seo ×2
angularjs ×1
html ×1
html5 ×1
javascript ×1
meta-tags ×1
refresh ×1
search ×1
vue-router ×1
vue.js ×1