Итак, у меня есть форма AMP, которая, в зависимости от того, где находится пользователь, должна перенаправлять его в разные места. У меня есть установка, которая использует два скрытых поля, например, так:
<input name="ip_address" type="hidden" value="<?php echo getRemoteIPAddress()?>">
<input name="lead_geo" type="hidden" value="<?php echo getGeoByIp()?>">
Наряду с соответствующими функциями, которые, как я знаю, работают правильно, они были опробованы и протестированы на остальной части сайта.
Тогда моя конечная точка настроена с помощью классификатора, например:
if($lead_geo == '' || $lead_geo == 'CA' || $lead_geo == 'AZ' || $lead_geo == 'IL' || $lead_geo == 'TX' || strlen($lead_geo) > 5) {
header("AMP-Redirect-To: ".$location-specific-destination);
} else {
header("AMP-Redirect-To: ".$default);
}
И все это прекрасно работает локально, на сцене и на производстве, пока страница усилителя не будет кэширована. Проблема в том, что Google кеширует первый IP-адрес, который его запрашивает. Есть ли способ получить местоположение пользователя на кэшированной стороне? Или даже если бы я мог просто получить их IP-адрес на странице, я бы мог, чтобы конечная точка получила от нее местоположение.
TLDR: Как я могу получить местоположение пользователя или даже просто IP-адрес, когда они отправляют форму AMP.