一直以來,這個部落格都是由外掛負責把 WordPress 輸出的原 RSS 網址轉到 FeedBurner。如果訪客點進由 WordPress 提供的 RSS 網址的話,就會被導引到由 FeedBurner 提供的訂閱網址。
這幾天在整理部落格的時候,想說把一些作用性不大的外掛刪除掉,或是不用外掛,而透過其他方法來實現外掛的功能,藉此減輕伺服器的負擔。於是便搜尋是否有不用外掛而讓 RSS 轉向 FeedBurner 的方法,後來就找到藉由 .htaccess 來實現 RSS 轉址的方法。
如果你有修改 .htaccess 的權限的話,也可以考慮用此方法。減少對一個外掛的依賴。方法如下,在 .htaccess 裡加入以下設定指令:
# temp redirect wordpress content feeds to feedburner
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} !FeedBurner [NC]
RewriteCond %{HTTP_USER_AGENT} !FeedValidator [NC]
RewriteRule ^feed/?([_0-9a-z-]+)?/?$ http://feeds.feedburner.com/joaoko [R=302,NC,L]
</IfModule>
記得要把 FeedBurner 網址裡的 ID 換成你自己的。
如果加入這些指令後,出現 500 Internal Server Error 的問題,或者是沒有產生轉址作用的話,那麼就把其中三行指令加到原來的 WordPress 指令區塊裡,就像這樣:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} !FeedBurner [NC]
RewriteCond %{HTTP_USER_AGENT} !FeedValidator [NC]
RewriteRule ^feed/?([_0-9a-z-]+)?/?$ http://feeds.feedburner.com/joaoko [R=302,NC,L]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
其中三行紅色粗體指令就是 RSS 轉向 FeedBurner 的設定。