Перенаправление RSS в WordPress на FeedBurner для nginx
Выполнение перенаправления без плагинов
Хотя для перенаправления фидов WordPress на Feedburner существует несколько плагинов, справиться с этой задачей можно и силами web-сервера. Рассмотрим на примере nginx.
С использованием постоянных ссылок:
[-]
View Code nginx configuration
server {
#...
if ($http_user_agent !~ FeedBurner) {
rewrite ^/feed(/.*)?$ http://feeds2.feedburner.com/FEEDBURNER-BLOG-ID?;
rewrite ^/comment/feed(/.*)?$ http://feeds2.feedburner.com/FEEDBURNER-COMMENTS-ID?;
}
#...
}
#...
if ($http_user_agent !~ FeedBurner) {
rewrite ^/feed(/.*)?$ http://feeds2.feedburner.com/FEEDBURNER-BLOG-ID?;
rewrite ^/comment/feed(/.*)?$ http://feeds2.feedburner.com/FEEDBURNER-COMMENTS-ID?;
}
#...
}
Без использования постоянных ссылок сложнее, так как nginx не поддерживает сложные выражения в операторе if:
[-]
View Code nginx configuration
server {
#...
set $withcomments 0;
set $feedburner 0;
set $feed 0;
if ($http_user_agent ~ FeedBurner) {
set $feedburner 1;
}
if ($arg_withcomments = "1") {
set $withcomments 1;
}
if ($arg_feed) {
set $feed 1;
}
if ($feedburner) {
set $feed 0;
}
if ($feed = "0") {
set $withcomments 0;
}
if ($withcomments) {
rewrite .* http://feeds2.feedburner.com/FEEDBURNER-COMMENT-ID?;
}
if ($feed) {
rewrite .* http://feeds2.feedburner.com/FEEDBURNER-BLOG-ID?;
}
#...
}
#...
set $withcomments 0;
set $feedburner 0;
set $feed 0;
if ($http_user_agent ~ FeedBurner) {
set $feedburner 1;
}
if ($arg_withcomments = "1") {
set $withcomments 1;
}
if ($arg_feed) {
set $feed 1;
}
if ($feedburner) {
set $feed 0;
}
if ($feed = "0") {
set $withcomments 0;
}
if ($withcomments) {
rewrite .* http://feeds2.feedburner.com/FEEDBURNER-COMMENT-ID?;
}
if ($feed) {
rewrite .* http://feeds2.feedburner.com/FEEDBURNER-BLOG-ID?;
}
#...
}
Минус один плагин — теперь всё перенаправление будет осуществляться на уровне web-сервера, что менее ресурсоёмко и чуть быстрее. Спички ![]()
Связанные записи
Автор: Vladimir; опубликовано в: WordPress; метки: Feedburner, nginx, RSS, WordPress13
Ноя
2009
Ноя
2009


Меня зовут Владимир, я программист-фрилансер, специализирующийся на Web-программировании и програмировании под Linux.
По совместительству занимаюсь администрированием LAMP/LNMP-серверов и техническим переводом.





