Facebook crawler似乎在我的ExpressJS应用程序上触发了禁止的错误
我注意到,每次我使用ExpressJS设置的或类似Facebook的按钮时,都会抛出错误:连续两次禁止 所以我假设爬虫发送了一个请求,这个请求是weirds out Express的,可能在头文件中有类似的东西 以下是Facebook crawler发送的标题:Facebook crawler似乎在我的ExpressJS应用程序上触发了禁止的错误,facebook,node.js,express,Facebook,Node.js,Express,我注意到,每次我使用ExpressJS设置的或类似Facebook的按钮时,都会抛出错误:连续两次禁止 所以我假设爬虫发送了一个请求,这个请求是weirds out Express的,可能在头文件中有类似的东西 以下是Facebook crawler发送的标题: { host: 'runningheroes.co', accept: '*/*', 'accept-encoding': 'deflate, gzip', range: 'bytes=0-8999',
{
host: 'runningheroes.co',
accept: '*/*',
'accept-encoding': 'deflate, gzip',
range: 'bytes=0-8999',
referer: 'http://runningheroes.co/',
'user-agent': 'facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)',
'x-forwarded-for': '173.252.100.117',
'x-forwarded-port': '80',
'x-forwarded-proto': 'http',
connection: 'keep-alive'
}
这是我的Express配置:
app.configure(function(){
app.use(express.compress());
app.use(express.static(path.join(__dirname, 'public')));
app.set('views', __dirname + '/views');
app.set('view engine', 'ejs');
app.set('port', process.env.PORT || 8000);
app.use(express.favicon(__dirname + '/public/img/favicon.ico'));
app.use(express.logger('dev'));
app.use(express.bodyParser({ keepExtensions: true }));
app.use(express.methodOverride());
app.use(express.cookieParser('secret'));
app.use(express.cookieSession({ secret: 'secret', cookie: { domain: '.runningheroes.co', maxAge: 1000*60*60*24, httpOnly: true } }));
app.use(app.router);
// Error handling:
app.use(function(err, req, res, next) {
if(!err) { return next(); }
// This is were the Forbidden errors are logged
logger.error('Express.error.middleware: ' + err);
res.redirect('/error');
});
});
任何帮助都将不胜感激
PS:调试器仍然能够成功解析og meta标记,尽管出现了错误,“like”按钮也能正常工作。相关,可能会有帮助可能是accepts头*/*弄乱了ExpressYea可能是原因,但不知道如何修复它。。。