第一个注意事项:此站点托管在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 = xxxxyyyy",我会再次得到一个空数组.
.htaccess中没有什么奇怪的,只有少数标准的Wordpress行.
托管中有什么东西导致这个吗?
如果其他人遇到同样的问题,就像我刚才那样,我通过实时聊天和WPEngine支持团队进行了交谈.他们在几分钟内纠正了它
这是我们聊天的简短记录:
我:我正在尝试将一些GET变量放入一个cookie中,当访问$ _SERVER ['REQUEST_URI']全局变量时,似乎它适用于任意变量(如my_name = bob),但由于某种原因,任何以"正在删除查询字符串中的utm_".似乎是你身边的php/cache配置,你对此有何了解?
WPE:很棒的问题; 不幸的是,我不知道在查询中自动删除特定的args.让我和一些同事一起回顾一下.
我:k.仅供参考,这是一个堆栈溢出问题http:// stackoverflow ... -the-get-variable-in-wordpress.似乎也得到了其他人的经验证实:https://twitter.com/ ... ey01/status/555584796785528832
WPE:这是为您的安装:?
我可以
WPE:我可以请你现在试试吗?
我:好的,它现在有效.问题是什么?
WPE:很棒!问题是我们默认删除了"utm_"arg.我为没有意识到你建议的arg而道歉.我不得不从我们的缓存系统中排除这个arg.
我:好的,所以我自己无法做到这一点对吗?
WPE:这是正确的.
链接供参考:https://wpengine.com/support/utm-gclid-variables-caching/