Intereting Posts
Как расшифровать хешированный пароль с помощью php? Как проверить, установлен ли мой хостинг-провайдер mod_gzip? Упрощение форм PHP, которые предварительно заполняются данными dabase и проверкой ошибок, поэтому активно перезаписывать данные $ _POST Установка json formatter в монологе PHP не может найти модули SNMP под Windows 7 Подключение HTML, Javascript и PHP с сеансами Не удается сохранить холст HTML5 как изображение на сервере Как получить идентификатор заказа в woocommerce_email_headers Выполнение внешней программы BLAST в PHP создайте запись mysql, если она не существует, иначе обновите ее В PHP, почему «или die ()» работает, но «или возвращать» нет? тестирование базы данных с двоичным типом в mysql с использованием phpunit Практическая реализация и лучшие практики Zend_ACL + Zend_Auth Пытается передать переменные значения с JavaScript на PHP с помощью AJAX разрывы строк и отступы в html-выходе

Наличие «utm_» в строке URL разбивает переменную $ _GET в WordPress

Первое примечание: этот сайт размещен на WPEngine (кэширование лаков), но я не могу воспроизвести проблему на другом сервере.

Нам нужно иметь доступ к переменной PHP $ _GET на некоторых страницах. Для тестирования я изменил наш WordPress header.php, чтобы сделать var_dump в первой строке.

Обычно все работает нормально. Однако, если строка URL содержит «utm_», каждая последующая переменная в $ _GET удаляется. Дополнительная странная часть заключается в том, что если я войду в WordPress, все будет хорошо.

Наш URL-адрес возврата Paypal выглядит так:

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

Utm_nooverride заставляет $ _GET быть пустым массивом. Если я изменю его на «test = 1 & tx = xxxxyyyy», он будет работать нормально. Если я использую «utm_test = 1 & tx = xxxxyyyy», я снова получаю пустой массив.

В .htaccess нет ничего странного, только несколько стандартных строк WordPress.

Может ли быть что-то в хостинге, вызвавшем это?

WP Engine может иметь (неправильно) сконфигурированный Varnish, чтобы игнорировать параметры строки запроса, когда они ссылаются на переменные кампании Google Analytics. Возможно, они сделали это, поэтому они могут ссылаться на кеш страницы без строки запроса, поскольку переменные кампании читаются на стороне клиента (а не на стороне сервера) поставщиком аналитики. Поэтому игнорировать эти переменные на стороне сервера, по-видимому, не повлияет, и это повысит производительность для сайтов, сильно использующих отслеживание входящих сообщений Google Analytics.

Я говорю, что это возможно, потому что есть вопрос о переполнении стека, спрашивающий, как это сделать: «Отключение выбора пар атрибутов / значений querystring, поэтому лак не будет изменять их кеш» . Единственный способ узнать наверняка – это связаться с WP Engine.

Если кто-то другой сталкивается с той же проблемой, как я это делал, я разговаривал с командой поддержки WPEngine через Live chat и. Они исправили его в течение нескольких минут

Вот сокращенная расшифровка нашего чата:

  • Me: Я пытаюсь поместить некоторые GET-файлы в файл cookie, и похоже, что он работает с произвольными переменными (например, my_name = bob) при доступе к глобальной переменной $ _SERVER ['REQUEST_URI'], но по какой-то причине все, начиная с " utm_ "в строке запроса удаляется. Кажется, что на вашем компьютере настроен php / cache config, вы знаете что-нибудь об этом?
  • WPE: Большой вопрос; к сожалению, я ничего не знаю о том, что автоматически отключает определенные аргументы в запросе. Позвольте мне рассмотреть это с некоторыми коллегами.
  • Я: к. FYI, вот проблема переполнения стека http: // stackoverflow … -the-get-variable-in-wordpress. похоже, подтверждается опытом других: https://twitter.com/ … ey01 / status / 555584796785528832
  • WPE: Это для вашей установки:?
  • Я да
  • WPE: Могу ли я попросить вас сейчас?
  • Я: хорошо, он работает сейчас. в чем проблема?
  • WPE: Отлично! Проблема заключалась в том, что мы деактивируем «utm_» arg по умолчанию. Я извиняюсь за то, что не понял, что вы предлагали. Я должен был исключить этот аргумент из нашей системы кеширования.
  • Я: хорошо, так что я никак не мог бы сделать это сам?
  • WPE: Это правильно.