Если его нет, просто включите реферер в качестве одной из «подробностей браузера», которую вы захватываете и отправляете обратно с инструкцией по перенаправлению. Реферер, вероятно, не доступен на клиенте автоматически, поэтому он будет работать так:
- Клиент отправляет первоначальный запрос, предположительно с включением реферера.
- Сервер динамически генерирует страницу тестирования на стороне клиента, включая ссылку в переменную Javascript.
- Клиент собирает атрибуты клиента, включая значение реферера, сохраненное на шаге 2.
- Клиент отправляет собранные атрибуты на сервер с новым запросом перенаправления.
- Сервер записывает параметр referrer где-то, хотя не в журналах HTTP, поскольку заголовок Referer не будет иметь того же значения, что и отправленный запрос Javascript.
Конечно, вы понимаете, что все это не является надежным в любом случае, потому что все зависит от клиента, включая заголовок Referer на шаге 1, и нет никакой гарантии, что произойдет, или если это произойдет, то, что полученное вами значение является точным , Я также подвергаю сомнению целесообразность выполнения проверок на стороне клиента (особенно в отношении чего-то произвольного, например размеров окна), чтобы определить достоверность запроса навигации.