Насколько я понимаю, этот параметр является средством отслеживания посетителя сайта, поэтому, если ваш сайт включает рекламу из Facebook, они могут настроить ее в соответствии с записанными привычками просмотра посетителей.
Приведенное mod_rewrite
выше решение Apache проблематично, поскольку оно удаляет всю строку запроса. Если в URL-адресе уже была строка запроса, это сломает ее. Чтобы удалить только fbclid
параметр, полезно отметить, что Facebook всегда добавляет его к URL-адресу, поэтому он всегда последний. Это немного упрощает mod_rewrite
код. Это то чем я занимаюсь:
# Strip Facebook spyware tokens
RewriteCond %{REQUEST_METHOD} =GET [NC,OR]
RewriteCond %{REQUEST_METHOD} =HEAD [NC]
RewriteCond %{QUERY_STRING} ^(.*)&?fbclid=[^&]+$ [NC]
RewriteRule ^/?(.*)$ /$1?%1 [NE,L,R=301,E=limitcache:1]
Header always set Cache-Control "max-age=604800" env=limitcache
E=limitcache:1
Флаг и Header
директива , чтобы ограничить как долго кэшируется 301 редирект. По умолчанию многие браузеры кешируют его буквально навсегда . Это сокращает это до одной недели (или 604 800 секунд). Возможно, я в меньшинстве так думаю, но мне это кажется хорошей практикой. Я не знаю, как долго fbclid
токены сохраняются, но если они существуют долго, это означает, что Facebook будет направлять посетителей по одним и тем же URL-адресам в течение длительного времени, и если вы когда-нибудь захотите поддержать таргетированную рекламу Facebook, или если они начнут используя fbclid
другие функции, которые вам нужны, вы можете обнаружить, что эти перенаправления с постоянным кешем снова перестают работать. Но если вы готовы рискнуть, вы можете удалить и Header
директиву, и E=limitcache:1
флаг.
Эти два теста %{REQUEST_METHOD}
предназначены для предотвращения перенаправления Apache запросов POST (или более эзотерических запросов, таких как PUT или DELETE, если они актуальны). Большинство браузеров изменяют запрос на GET-запросы при перенаправлении 301 или 302, что явно разрешено RFC 7231 . Существует новый код перенаправления 308, который не должен переписывать свой метод, но, к сожалению, он не поддерживается Internet Explorer в Windows 7 (и, вероятно, никогда не будет).