Facebook fbclid 污染 -- 如何防止?

我真的很喜欢 Discourse 的永久链接功能。

例如,我一直在 https://fortmactech.com/riverbreak 收集照片和视频——它会跳转到实际话题的更长 URL。

我遇到的问题是,当该链接被发布到 Facebook 并有人点击时,Facebook 会在末尾附加其 fbclid 垃圾参数。因此,URL 会变成类似这样:

https://fortmactech.com/riverbreak?fbclid=IwAR1E9PoBxuWURZRJlA4D0VrnESbfjGfC2xKuvVJzCRUmIJy7ZRKMkkH8I-U

这会导致 Discourse 返回 404 错误。

有没有什么技巧可以让 Discourse 忽略 fbclid 参数?

所以我认为这应该可以通过“固定链接规范化”设置来实现,但我还搞不定正则表达式。基本上就是删除 ?fbclid= 及其之后的所有内容,我猜是这样。

对此我也很感兴趣。这正在污染我们的 Google Analytics 数据。

所以我已经通过一条 Cloudflare 页面规则解决了这个问题:

Screen Shot 2021-04-14 at 9.27.33 AM

但更希望直接在 Discourse 层面实现。

你是如何将 https://fortmactech.com/riverbreak 转发到 https://fortmactech.com/t/river-drone-videos-photos-2021/818 的?

看起来在主题 URL 中添加查询参数并不会引发任何问题。例如,这个链接应该可以正常工作:https://fortmactech.com/t/river-drone-videos-photos-2021/818?fbclid=IwAR1E9PoBxuWURZRJlA4D0VrnESbfjGfC2xKuvVJzCRUmIJy7ZRKMkkH8I-U。因此,问题似乎与 https://fortmactech.com/riverbreak 当前设置的跳转有关。

我现在通过使用 Cloudflare 大致解决了这个问题。如果你想要查看 404 错误的发生情况,我可以暂时关闭 Cloudflare 页面规则。

例如,请尝试访问以下链接:

https://fortmactech.com/riverbreak?fbclid=IwAR1E9PoBxuWURZRJlA4D0VrnESbfjGfC2xKuvVJzCRUmIJy7ZRKMkkH8I-U

 

我在“管理 / 设置 / 固定链接”中这样添加:

Screen Shot 2021-04-14 at 10.30.21 AM

 

添加后的效果如下:

 

 

结果如下:

 

我也尝试过添加尾部斜杠。

如果我在请求到达 Discourse 之前,通过 Cloudflare 页面规则移除 fbclid 参数,那么一切都能正常工作。

这是否是 Discourse“固定链接标准化”功能的作用?我能否通过该设置移除问号(?)之后的所有内容?

感谢提供详细信息。看来查询参数会导致 Discourse 永久链接重定向失效。我不确定这是否属于预期行为。

这确实是预期的,它被广泛用于包含如 forum.php?topic_id=1234 的永久链接。

这很有道理。有没有办法在固定链接代码分析传入的 URL 之前对其“转换”?这就是“固定链接规范化”功能吗?

是的,这正是永久链接规范化所用途的:smiley:

有人能举个例子,说明如何在“固定链接标准化”设置中移除 ?fbclid= 及其之后的所有内容吗?谢谢 :slight_smile: