我们将 Nationbuilder 用于我们的网站,并发现当 Nationbuilder 对链接进行编码(用于跟踪)时,如果它们包含多个查询参数,它将破坏它们。
例如,假设我们在 Nationbuilder 的电子邮件中插入以下链接:
<a href="http://www.example.com/?a=1&b=2">click me</a>
假设我们的 Nationbuilder 网站托管在 www.website.org,那么 Nationbuilder 将这样重写链接:
<a href="http://www.website.org/r?u=http%3A%2F%2Fwww.example.com%3Fa%3D1&b=2&e=986513203a6d0d0a90fd5ab67500a9a5&utm_source=my_source&utm_medium=my_medium&utm_campaign=my_campaign&n=2">click me</a>
当点击上面的链接时,Nationbuilder 会对其进行处理并将点击事件记录在他们的系统中,但随后会错误地重定向到http://www.example.com?a=1并丢弃 &b=2。
大多数人会立即发现问题——我们的原始 url,作为上面的“u”查询参数传递,没有被 Nationbuilder 正确编码。至少应该对“b”之前的&符号进行编码,如果不是等号,那么我们的整个原始 url 将被捕获在“u”参数中。Nationbuilder 创建的正确链接,使用正确的编码,应该是这样的:
<a href="http://www.website.org/r?u=http%3A%2F%2Fwww.example.com%3Fa%3D1%26b%3D2&e=986513203a6d0d0a90fd5ab67500a9a5&utm_source=my_source&utm_medium=my_medium&utm_campaign=my_campaign&n=2">click me</a>
令人震惊的是,Nationbuilder 技术支持和他们的工程师说这种行为“按预期工作”。我们指出,没有人会期望一个工作链接会变成一个损坏的链接,但他们拒绝将其视为错误或至少视为设计错误。
有没有人建议我们如何绕过这个 Nationbuilder 使用查询参数断开链接的“功能”?我们在 URL 中广泛使用查询参数。我们正在考虑通过 bit.ly 缩短每个链接,这样它们就没有查询参数,但这似乎是很多不必要的工作。
谢谢!