如何将 facebook 爬虫机器人重定向到另一个网页?
How can I redirect facebook crawler bot to another webpage?
我开发了由 PreactJS 完成的小型网站,其中包含主网站的某些部分 (PHP)。众所周知,Facebook 机器人无法在共享时抓取 javascript 预渲染内容。这就是为什么我想重定向让 facebook 机器人抓取主要网站 (PHP) 同时共享由 PreactJS 在 NodeJS/ExpressJS 中完成的 link 网站,如下所示:
如果用户正在分享“https://www.mywebsite.com/category/trips/10' I want nodejs/express to redirect 'https://main.mywebsite.com/category/trips/10”。谁能告诉我如何在 expressjs 级别中执行以下操作:
app.use('/*', function(req, res){
if(req.headers['user-agent'] === 'facebookexternalhit/1.1') {
}
});
app.use('/*', function(req, res){
if(req.headers['user-agent'] === 'facebookexternalhit/1.1') {
res.redirect("https://main.mywebsite.com/category/trips/10")
}
});
如果要将其重定向到您创建的视图,可以使用 res.render()
我强烈建议代理该数据,而不是重定向。否则,Facebook 将假定您的 URL 也是普通用户的重定向。
考虑一个像 express-http-proxy 这样的模块,这使得这很简单。未经测试,但这应该可以帮助您入门:
app.use((req, res, next) => {
if (
!req.headers['user-agent'] ||
!req.headers['user-agent'].startsWith('facebookexternalhit')
) {
return next();
}
return proxy('main.mywebsite.com')(req, res);
});
我开发了由 PreactJS 完成的小型网站,其中包含主网站的某些部分 (PHP)。众所周知,Facebook 机器人无法在共享时抓取 javascript 预渲染内容。这就是为什么我想重定向让 facebook 机器人抓取主要网站 (PHP) 同时共享由 PreactJS 在 NodeJS/ExpressJS 中完成的 link 网站,如下所示:
如果用户正在分享“https://www.mywebsite.com/category/trips/10' I want nodejs/express to redirect 'https://main.mywebsite.com/category/trips/10”。谁能告诉我如何在 expressjs 级别中执行以下操作:
app.use('/*', function(req, res){
if(req.headers['user-agent'] === 'facebookexternalhit/1.1') {
}
});
app.use('/*', function(req, res){
if(req.headers['user-agent'] === 'facebookexternalhit/1.1') {
res.redirect("https://main.mywebsite.com/category/trips/10")
}
});
如果要将其重定向到您创建的视图,可以使用 res.render()
我强烈建议代理该数据,而不是重定向。否则,Facebook 将假定您的 URL 也是普通用户的重定向。
考虑一个像 express-http-proxy 这样的模块,这使得这很简单。未经测试,但这应该可以帮助您入门:
app.use((req, res, next) => {
if (
!req.headers['user-agent'] ||
!req.headers['user-agent'].startsWith('facebookexternalhit')
) {
return next();
}
return proxy('main.mywebsite.com')(req, res);
});