首先请注意:该站点托管在WPEngine(清漆缓存)上,但是我似乎无法在另一台服务器上复制该问题。

我们需要能够在某些页面上访问$ _GET php变量。为了进行测试,我修改了Wordpress header.php以在第一行进行var_dump。

通常,一切正常。但是,如果URL字符串包含“utm_”,则$ _GET中的每个后续变量都将被删除。额外的怪异部分是,如果我登录到Wordpress,一切正常。

我们的Paypal返回网址如下所示:

http://oururl.com/buy/thankyou/?utm_nooverride=1tx=xxxxyyyy ...

utm_nooverride导致$ _GET为空数组。如果我将其更改为“test = 1&tx = xxxxyyyy”,则可以正常运行。如果我使用“utm_test = 1&tx = xxxxyyyyy”,我将再次得到一个空数组。

.htaccess中没有什么奇怪的,只有几条标准的Wordpress行。

托管中是否可能有什么原因导致这种情况?

最佳答案

万一其他人遇到同样的问题,就像我刚才所做的那样,我通过Live chat和WPEngine支持团队进行了交谈。他们在几分钟内纠正了它

这是我们聊天的简短记录:

  • 我:我正在尝试将一些GET vars放入cookie中,当访问$ _SERVER ['REQUEST_URI']全局变量时,它似乎适用于任意变量(例如my_name = bob),但是由于某种原因,任何以查询字符串中的“utm_”被剥离。似乎是您这一边的php/cache配置,您对此一无所知吗?
  • WPE:很好的问题;不幸的是,我不知道有什么东西会自动删除查询中的特定参数。让我与一些同事一起回顾一下。
  • 我:k。仅供引用,这是一个堆栈溢出问题http://stackoverflow…-wordpress中的可变变量。似乎也被其他人的经验所证实:https://twitter.com/…ey01/status/555584796785528832
  • WPE:这是为您安装的:
  • 我:是的
  • WPE:请问您现在可以尝试吗?
  • 我:好的,现在可以使用。这是什么问题?
  • WPE:太好了!问题是默认情况下,我们删除了“utm_” arg。对于未意识到您所建议的arg,我深表歉意。我不得不将此arg从我们的缓存系统中排除。
  • 我:好的,所以我不可能自己做到这一点,对吗?
  • WPE:正确。

  • 引用链接:https://wpengine.com/support/utm-gclid-variables-caching/

    08-28 14:03