regex - prerender.io via prerender-node middleware, blacklist hashbang
问题描述
I'm successfully using prerender.io service via the prerender.io expresss middleware package prerender-node.
I've not noticed a lot of pollution in my cached results from bots/probes/redirects.
I'm trying to implement a blacklist.
prerender-node state I can do this with something similar to:
if (env === 'production') {
console.log('production environment, prerender.io enabled')
const prerender = require('prerender-node').set('prerenderToken', '******')
prerender.blacklisted(
[
'#!',
'/#!/',
'^/#!/.*'
]
)
app.use(prerender)
}
In this example I'm just trying to filter out all hahsbang URLs from being cached.
i.e. https://example.com/#!/some/url
But it doesn't seem to be working. After deploying this code, and clearing the cached results. The cache is getting refilled up with results containing '#!'.
Prerender-node README (https://github.com/prerender/prerender-node
) states this should be simple regex.
And regex pattern validates here: https://regex101.com/
解决方案
在与 prerender 作者取得联系后,他们指出
#!
实际上被重定向为?_escaped_fragment_=
所以:
const prerender = require('prerender-node').set('prerenderToken', '******')
prerender.blacklisted('_escaped_fragment_');
app.use(prerender)
...似乎按预期工作。
推荐阅读
- r - 如何在没有任何公共列的情况下合并 R 中的不同 Excel 工作表?
- r - 比较每 n 行并显示布尔向量
- android - Facebook 打算在 Android 中显示实时视频
- git - 如何比较两个提交的内容?
- php - 使用多对多多态关系比使用 2 个中间表更好吗?
- java - 在没有 Activity 的情况下运行 IntentService
- c# - 通过发送元素 C# 访问方法中的数组
- c++ - tensorflow:转置需要一个大小为 1 的向量。但 input(1) 是一个大小为 2 的向量
- angular - Max Length for Each Line in Textarea
- c# - Given a list of strings, distribute into two 100 character fields