Seperti yang saya pahami, parameter adalah alat untuk melacak pengunjung situs sehingga jika situs Anda menyertakan iklan dari Facebook, mereka dapat menyesuaikannya agar sesuai dengan kebiasaan browsing pengunjung yang tercatat.
mod_rewrite
Solusi Apache di atas bermasalah karena menghapus seluruh string kueri. Jika URL sudah memiliki string kueri, ini akan merusaknya. Untuk menghapus fbclid
parameter saja, perlu diperhatikan bahwa Facebook selalu menambahkannya ke URL, jadi selalu terakhir. Itu sedikit menyederhanakan mod_rewrite
kode. Inilah yang saya lakukan:
# 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
The E=limitcache:1
bendera dan Header
direktif adalah untuk membatasi berapa lama 301 cache. Secara default, banyak browser menyimpannya secara harfiah selamanya . Ini menguranginya menjadi satu minggu (atau 604.800 detik). Saya mungkin termasuk minoritas dalam memikirkan hal ini, tetapi bagi saya hal itu tampaknya merupakan praktik yang baik. Saya tidak tahu berapa lama fbclid
token bertahan, tetapi jika tahan lama, itu berarti Facebook akan mengarahkan pengunjung ke URL yang sama untuk waktu yang lama, dan jika Anda ingin mendukung iklan bertarget Facebook, atau jika mereka mulai menggunakan fbclid
untuk fungsionalitas lain yang Anda butuhkan, Anda mungkin menemukan pengalihan cache permanen ini kembali menggigit. Tetapi jika Anda bersedia mengambil risiko, Anda dapat menghapus Header
perintah dan E=limitcache:1
benderanya.
Kedua pengujian tersebut %{REQUEST_METHOD}
adalah untuk mencegah Apache mengalihkan permintaan POST (atau permintaan esoterik lainnya seperti PUT atau DELETE, jika relevan). Sebagian besar browser mengubah permintaan menjadi permintaan GET pada pengalihan 301 atau 302, yang secara eksplisit diizinkan oleh RFC 7231 . Ada kode pengalihan 308 baru yang metodenya tidak boleh ditulis ulang, tetapi sayangnya tidak didukung oleh Internet Explorer pada Windows 7 (dan mungkin tidak akan pernah).