Jak rozumiem, parametr ten służy do śledzenia osoby odwiedzającej witrynę, aby w przypadku, gdy witryna zawierała reklamy z Facebooka, mogli dostosować ją do zarejestrowanych nawyków przeglądania.
Powyższe mod_rewrite
rozwiązanie Apache jest problematyczne, ponieważ usuwa cały ciąg zapytania. Jeśli adres URL miał już ciąg zapytania, spowoduje to jego uszkodzenie. Aby usunąć tylko fbclid
parametr, warto zauważyć, że Facebook zawsze dołącza go do adresu URL, więc zawsze jest ostatni. To mod_rewrite
trochę upraszcza kod. Tym się właśnie zajmuję:
# 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
Flagi i Header
dyrektywy jest ograniczenie, jak długo przekierowanie 301 jest buforowane. Domyślnie wiele przeglądarek buforuje je dosłownie na zawsze . Zmniejsza to czas do jednego tygodnia (lub 604800 sekund). Myślę, że to mniejszość, ale wydaje mi się to dobrą praktyką. Nie wiem, jak długo fbclid
utrzymują się tokeny, ale jeśli są trwałe, oznacza to, że Facebook będzie kierował odwiedzających pod te same adresy URL przez długi czas i jeśli kiedykolwiek zechcesz wspierać ukierunkowane reklamy Facebooka lub jeśli zaczną korzystając z fbclid
innych funkcji, których potrzebujesz, możesz zauważyć, że te trwale zapisane w pamięci podręcznej przekierowania powrócą do gryzienia. Ale jeśli chcesz zaryzykować, możesz usunąć zarówno Header
dyrektywę, jak i E=limitcache:1
flagę.
Te dwa testy %{REQUEST_METHOD}
mają zapobiec przekierowywaniu żądań POST przez Apache (lub bardziej ezoterycznych żądań, takich jak PUT lub DELETE, jeśli są istotne). Większość przeglądarek zmienia żądanie na żądanie GET na przekierowaniu 301 lub 302, na co wyraźnie zezwala RFC 7231 . Jest nowy kod 308 przekierowanie nie musi mieć swój sposób przepisany, ale niestety nie jest obsługiwany przez program Internet Explorer na Windows 7 (i prawdopodobnie nigdy nie będzie).