つい先日、このブログ(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件のコメント