MiG
1
我真的很喜欢 Discourse 的永久链接功能。
例如,我一直在 https://fortmactech.com/riverbreak 收集照片和视频——它会跳转到实际话题的更长 URL。
我遇到的问题是,当该链接被发布到 Facebook 并有人点击时,Facebook 会在末尾附加其 fbclid 垃圾参数。因此,URL 会变成类似这样:
https://fortmactech.com/riverbreak?fbclid=IwAR1E9PoBxuWURZRJlA4D0VrnESbfjGfC2xKuvVJzCRUmIJy7ZRKMkkH8I-U
这会导致 Discourse 返回 404 错误。
有没有什么技巧可以让 Discourse 忽略 fbclid 参数?
MiG
2
所以我认为这应该可以通过“固定链接规范化”设置来实现,但我还搞不定正则表达式。基本上就是删除 ?fbclid= 及其之后的所有内容,我猜是这样。
rmens
3
对此我也很感兴趣。这正在污染我们的 Google Analytics 数据。
MiG
4
所以我已经通过一条 Cloudflare 页面规则解决了这个问题:

但更希望直接在 Discourse 层面实现。
simon
5
你是如何将 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 当前设置的跳转有关。
MiG
6
我现在通过使用 Cloudflare 大致解决了这个问题。如果你想要查看 404 错误的发生情况,我可以暂时关闭 Cloudflare 页面规则。
例如,请尝试访问以下链接:
https://fortmactech.com/riverbreak?fbclid=IwAR1E9PoBxuWURZRJlA4D0VrnESbfjGfC2xKuvVJzCRUmIJy7ZRKMkkH8I-U
我在“管理 / 设置 / 固定链接”中这样添加:

添加后的效果如下:
结果如下:
我也尝试过添加尾部斜杠。
如果我在请求到达 Discourse 之前,通过 Cloudflare 页面规则移除 fbclid 参数,那么一切都能正常工作。
这是否是 Discourse“固定链接标准化”功能的作用?我能否通过该设置移除问号(?)之后的所有内容?
simon
7
感谢提供详细信息。看来查询参数会导致 Discourse 永久链接重定向失效。我不确定这是否属于预期行为。
riking
(Kane York)
8
这确实是预期的,它被广泛用于包含如 forum.php?topic_id=1234 的永久链接。
MiG
9
这很有道理。有没有办法在固定链接代码分析传入的 URL 之前对其“转换”?这就是“固定链接规范化”功能吗?
justin
(Justin DiRose)
10
是的,这正是永久链接规范化所用途的:smiley:
MiG
11
有人能举个例子,说明如何在“固定链接标准化”设置中移除 ?fbclid= 及其之后的所有内容吗?谢谢 