Перенаправление RSS в WordPress на FeedBurner для nginx

Выполнение перенаправления без плагинов

Хотя для перенаправления фидов на существует несколько плагинов, справиться с этой задачей можно и силами web-сервера. Рассмотрим на примере .

С использованием постоянных ссылок:

[-]
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?;
    }

#...
}

Без использования постоянных ссылок сложнее, так как 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?;
    }

#...
}

Минус один плагин — теперь всё перенаправление будет осуществляться на уровне web-сервера, что менее ресурсоёмко и чуть быстрее. Спички :-)

Автор: ; опубликовано в: nginx, WordPress; метки: Feedburner, nginx, RSS, WordPress
13
Ноя
2009

RSS Комментарии к статье «Перенаправление RSS в WordPress на FeedBurner для nginx» (5)  »

  1. Alexander

    Здравствуйте, можете подсказать, возможно ли сделать перенаправление 301 с помощью nginx с site.com/folder/a_b-с-1-9.html(любой знак включая вопросительный) на site.com/folder/a_b-с_1-9.html

    Из-за feedburner как-то получил ссылки в индексе, такого вида:

    site.com/folder/a_b-с_1-9.html?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed…

    а как это перенаправить незнаю.

    P.S. Это не относится к заметке.

  2. Как-то так:

    [-]
    View Code nginx configuration
    location /folder/ {
        if ($is_args != "") {
            rewrite .* $uri permanent;
        }
    }
  3. Здравствуйте! У меня такой вопрос. У меня блог на вордпрессе и я хотел бы перенаправить фид на feedburner без плагина. Сервер у меня nginx (сам я вообще в этом не разбираюсь – такой ответ мне дал сервис проверки сайтов). Видел несколько вариантов перенаправления на апаче, а вот у Вас как раз для nginx и вот не знаю теперь куда вставлять мне код, ссылки у меня чпу. В файл functions.php или в .htaccess? И нужно ли заменять #… на что то другое или достаточно просто скопировать как у вас и вставить, заменив лишь путь до ленты на фидбарнере? Заранее спасибо!

    • Wandering Soul

      Денис, если используется nginx, то добавлять в .htaccess что-либо бесполезно — nginx не использует .htaccess.

      Приведённый в статье кусок кода — это то, что нужно добавлять в файл конфигурации виртуального хоста (обычно /etc/nginx/sites-available/your-site), для чего требуются права администратора (root). То есть придётся дёргать техподдержку.

      PS — по большому счёту, между добавлением кода в functions.php и плагином особой разницы нет.

Пожалуйста, не используйте эту форму для комментирования! Данная форма предназначена исключительно для ботов.

Оставить комментарий к записи «Перенаправление RSS в WordPress на FeedBurner для nginx»

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Оставляя комментарий, вы выражаете своё согласие с Правилами комментирования.

Подписаться, не комментируя

गते गते पारगते पारसंगते बोधि स्वाहा