つい先日、このブログ(WordPress)をようやくApache無し、nginxだけで動かすことに成功しました。わーい。ところが今日、ふと変なことに気づいた。RSSが更新されていない・・・。
このブログのRSSはFeedBurnerに流していました。なので、一般の方がRSSを見た場合はFeedBurnerを見に行くようにしていたんです。
今回Apacheからnginxにリプレースした際も、RSSを見に来た人をFeedBurnerにリダイレクトさせる(飛ばす)ようにしました。
・・・が。
これじゃFeedBurnerさんは更新情報を取れないですな。クローラーもFeedBurnerに飛ばされちゃうんだものw
というわけで本題。今回は下記のように設定します。
- 一般ユーザーがWordPressのRSS( https://zafiel.wingall.com/feed )を見た場合はFeedBurnerに移動するようにします。
- FeedBurnerのクローラーだけはRSSを読めるようにします。
やることは簡単。訪問者のユーザーエージェントを見て識別します。
FeedBurnerのユーザーエージェントは「FeedBurner/1.0」らしい。なので、プロキシのserver部分に判別処理を書きます。
[shell title="nginx.conf"] (前半省略) server { listen 80; server_name zafiel.wingall.com; # /feed 以下のアクセスを処理 location /feed { # FeedburnerのクローラーはWebサーバーに流す if ($http_user_agent ~ ^FeedBurner) { proxy_pass http://127.0.0.1:8000/; break; } # 他はFeedBurnerにリダイレクト rewrite ^(.*) http://feeds.feedburner.com/azrael last; break; } (以下省略) [/shell]
こんな感じ。参考にどうぞ(・∀・)!
1件のコメント