Nginx で Feedly のリンクアドレスにくっついてくる utm_source=feedly を消してリダイレクトしてみる
Google Readerの終焉とともにFeedly からのアクセスが増えています。
Feedly からのアクセスが増えることは、別に構わないのですが、このFeedly からのアクセスには、http://www.example.com/aaa.html?utm_source=feedly のように必ずリクエストパラメータがくっついてきます。
このパラメータは、どのリンクからのアクセスなのかを判断する上で、有っても良いと思っていたのですが、ログの解析だったり、Nginxのキャッシュ制御を考えると 邪魔な時があります。
そこで、今回は、Nginx で Feedly のリンクアドレスにくっついてくる utm_source=feedly を消してリダイレクトしてみます。
Nginx で Feedly のリンクアドレスにくっついてくる utm_source=feedly を消してリダイレクトしてみる
Nginx で Feedly のリンクアドレスにくっついてくる utm_source=feedly を消してリダイレクトするには、以下のようにやれば簡単にリダイレクトできます。
/etc/nginx/nginx.confの設定例
...
server {
server_name www.example.com;
...
if ( $args ~ "(.*)&?utm_source=feedly&?(.*)" ) {
set $args $1$2;
rewrite ^ $scheme://$host$uri permanent;
}
...
}
...
|
解説するほどのものでもありませんが、 簡単に解説しておくと
$args には、パラメータ情報が設定されています。例えば以下のようなURLへアクセスした場合、
http://www.example.com/aaa.html?utm_source=feedly
$args : utm_source=feedly が設定されます。
また、以下のように複数のパラメータの場合、
http://www.example.com/aaa.html?utm_source=feedly¶_aaa=val_bbb
$args : utm_source=feedly¶_aaa=val_bbb が設定されます。
ここの if文では、正規表現を使って $args に utm_source=feedly (前後の&記号はあってもなくてもOK) の文字列が、あるかをチェックしています。
存在すれば、 $argsへ utm_source=feedlyを除いたパラメータを再設定し、同じURIでリダイレクトします。リダイレクト時に$argsに何か設定されていれば、自動的にURLにパラメータが付加されます。
これだけです。
ここでは、301リダイレクトにしています。
302リダイレクトとして扱いたい場合は、以下のように
permanent →
redirect とすればOKです。
rewrite ^ $scheme://$host$uri redirect;
|
このリダイレクトのポイントは、$args への 再設定 です。
個人的に、$args が再設定できることをすっかり忘れていて、どうすればリダイレクトできのかな?と悩んでしまったので、備忘録の意味も含めて記事にしてみました。
Nginxのリダイレクトの参考になればうれしく思います。
ご利用のブラウザは、広告ブロック(AdBlockなど) が適用となっていませんか?
このサイトでは、コンテンツの一部が非表示、あるいは、コメント、お問い合わせの投稿ができない、検索ができないことがあります。
関連記事 :
コメントを投稿 :