通过prerender-node中间件prerender.io,黑名单hashbang

时间:2019-06-12 23:47:54

标签: regex prerender blacklist

我通过prerender.io表达中间件软件包prerender-node成功地使用了prerender.io服务。

我从机器人/探针/重定向的缓存结果中没有发现很多污染。

我正在尝试实施黑名单。

prenderer节点状态,我可以使用类似以下的方法做到这一点:

if (env === 'production') {
  console.log('production environment, prerender.io enabled')
  const prerender = require('prerender-node').set('prerenderToken', '******')
  prerender.blacklisted(
    [
      '#!',
      '/#!/',
      '^/#!/.*'
    ]
  )
  app.use(prerender)
}

在此示例中,我只是试图从缓存中过滤掉所有hahsbang URL。

https://example.com/#!/some/url

但是它似乎没有用。部署此代码后,并清除缓存的结果。缓存中充满了包含“#!”的结果。

Prerender-node README(https://github.com/prerender/prerender-node)指出,这应该是简单的正则表达式。
正则表达式模式在此处进行验证:https://regex101.com/

1 个答案:

答案 0 :(得分:0)

与预先提交的作者联系后,他们指出 实际上#!被重定向为?_escaped_fragment_=

因此:

const prerender = require('prerender-node').set('prerenderToken', '******')
prerender.blacklisted('_escaped_fragment_');
app.use(prerender)

...似乎按预期工作。