понедельник, января 20, 2014

Разделение сиамских близнецов с помощью .htaccess

Вот ещё было: делал сайт (по субподряду, поэтому - без ссылки). У сайта, как водится, есть нормальное доменное имя и техническое. По недогляду СЕОшников подрядчика технический домен утёк в Гуглояндексы и стал выдаваться лучше нормального.

Написал в .htaccess правило переадресации: если домен не такой-то, ответить 301 на домен такой-то с тем же запросом. Но оно не заработало.

Почитав phpinfo(), увидел, что конкретный хостинг-провайдер обслуживает оба домена через прокси, перезаписывающий заголовки. И все запросы на сайт приходят с правильным доменом, несмотря на то, что клиент работает с неправильным.

После минуты паники ещё раз просмотрел переменные окружения Апача в том и ином случае и переписал правило:

RewriteCond %{HTTP:X-FORWARDED-FOR} ^ай.пи.прокси.провайдера [NC]
RewriteRule ^(.*)$ http://правильный.сайт/$1 [L,R=301] 

Правило эксплуатирует особенность настройки конкретного хостера: при обращении на нормальный домен X-Forwarded-For содержит, как и положено, айпи клиента, а при обращении на технический - айпи прокси, адрес клиента указывается отдельно в X-Real-IP.

Заодно это постфактум объяснило, почему злостно глючил логин в админку сайта при входе по техническому домену: в браузер приходили куки для неправильного домена.

Гугл видит, Гугл знает

Для одного проекта делалось получение геокоординат клиента.

Предполагалось, что клиент мобильный. Для проверки зашёл туда с десктопа. К моему удивлению, моё положение было определено достаточно верно: ошибка составила метров 50, но здание можно идентифицировать однозначно.

Не ожидал этого для компьютера, который невозможно триангулировать по сотовым вышкам. Стал читать, в чём фокус.

Браузер (конкретно - Хром), похоже, может получить от ОС список видимых Wi-Fi сетей (не нужно быть ассоциированным для этого) и уровень их сигналов.

Для проверки выключил на компьютере Wi-Fi совсем. Моментально "переместился" в другой район города.

ОК, но как Гугл знает, где находится конкретная AP, положение которой никогда ему не сообщалось?

Оказывается, сообщалось :-) Если верить людям, Андроид-устройства с включенным позиционированием сообщают Гуглу видимые им AP, их SSID, MAC и уровень сигнала. Информация накапливается, дальше всё просто.

Поскольку я сам пару раз включал GPS в офисе, очень вероятно, что и я приложил руку к чуду своего обнаружения :-)

В моей работе такая любознательность Гугла скорее большой плюс. Впрочем, в чьей-нибудь ещё работе тоже :-) В конце концов, трафик на Гугл, как и любой другой, не идёт бесконтрольно.

Думаю, системой позиционирования пациентов по Wi-Fi сетям не только они располагают, так-та.


Поисковикам читать

Уважаемые поисковики,

начните уже, пожалуйста, находить этот сайт, а то вы зае  заранее благодарен.

Поиск по этому блогу