前言
現在的社群軟體,如:Facebook、Instagram 等,如果你在他的平台點選一個外連連結,那他就會在網址的結尾加上自己的參數,這會使得網址變超級長。更重要的事情是,如果你正在使用 Google Analytics 這類的分析工具,那他會被視為是不同的網址,這對我們在分析網址成效的時候相當不方便。
這篇文會簡易的告訴你,如何使用 Nginx 來提前將這些參數去除掉,不去影響到各種分析工具。
解決方式
我們如何在 Nginx 預先處理掉這些東西?我的作法是讓 Nginx 檢查看看網址是否帶有這些參數,如果有就將網址清理乾淨,並使用 301 重新導向到乾淨的網址。這篇文章我以惱人的 Facebook 參數 fbclid
為例,我們來將它清除掉。
我們需要在網站的設定檔裡面加上一些內容,通常這些設定檔會放在 /etc/nginx/sites-enabled
底下,新增開頭的 map
以及中間的 if
。
map $request_uri $redirect_fbclid {
"~^(.*?)([?&]fbclid=[a-zA-Z0-9_-]+)$" $1;
}
server {
listen 80;
root /var/www/html;
index index.html index.htm;
server_name www.example.com;
if ( $redirect_fbclid ) {
return 301 $redirect_fbclid;
}
location / {
try_files $uri $uri/ =404;
}
}
使用 sudo nginx -t
來檢查設定檔是否有問題,並使用 sudo systemctl restart nginx
來重啟 Nginx。
接著,嘗試到你的網站,並在網址後面添加 fbclid
參數,看看 Nginx 是否會將你重新導向乾淨的網址囉!