nginx Compatibility: делаем WordPress дружелюбнее к nginx

Программное решение досадных мелочей с nginx

Переведя несколько сайтов с Apache на , уже который раз встречаю подводные камни. Один из них — нежелание понимать код редиректа, другая — постоянные попытки использовать PATHINFO-пермалинки вместо «нормальных» (pretty permalinks).

Неудобно каждый раз лезть в код WordPress, чтобы поправить очередную несовместимость, поэтому я написал небольшой .

Будучи активированным, плагин устанавливает собственные обработчики событий только в том случае, если сервер работает под управлением nginx, поэтому плагин без вреда (но и без всякой пользы) можно активировать на сервере с Apache — конфликтов не будет.

Текущая версия плагина решает следующие проблемы:

  • Когда WordPress обнаруживает, что используется SAPI, он отказывается посылать коды перенаправления, отличные от 302. Это приводит к тому, что при использовании неканонических ссылок PageRank от «неканонической» страницы не передаётся «канонической». Я где-то читал, что использование кода 302 для склеивания страниц может караться поисковиками; так это или нет, утверждать не берусь. Плагин исправляет этот недочёт WordPress методом, аналогичным описанному здесь: только вместо физического исправления файла функция wp_redirect() просто переопределяется в другом файле.
  • Страница настроек постоянных ссылок полагается на наличие : если он загружен, используются красивые ссылки, если нет — используются «почти» красивые ссылки вида PATHINFO. Что же, разработчики пользуются Apache. Так как nginx не использует модули и API Apache, функция, проверяющая наличие mod_rewrite, скажет, что он не загружен. Тем не менее, nginx умеет переписывать адреса, и использование PATHINFO не оправдано. Поэтому плагин «заставляет» WordPress думать, что mod_rewrite всё-таки загружен и можно использовать нормальные постоянные ссылки.

Скачать nginx Compatibility 0.1.

Автор: ; опубликовано в: nginx, Плагины WordPress; метки: FastCGI, mod_rewrite, nginx, redirect, WordPress, плагин
14
Апр
2009

RSS Комментарии к статье «nginx Compatibility: делаем WordPress дружелюбнее к nginx» (7)  »

  1. Loger

    Как совпало. Только-только назрел этот вопрос. Посмотрим, как плагин себя покажет. Но заранее спасибо.

  2. [...] для nginx есть лучший способ: плагин nginx Compatibility. [...]

  3. [...] для nginx есть лучший способ: плагин nginx Compatibility. [...]

  4. Не понятно почему, но у меня связка Nginx+php-fpm работает медленее, чем Nginx+Apache+mod_php. Долго бился (точнее учился:), чтобы заработало Nginx+php-fpm с Wp-SuperCache и WpTouch, а в результате генерирует html чуть медленее, чем Апач.

    Может как-то надо «очень правильно» php-fpm настроить?

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

Оставить комментарий к записи «nginx Compatibility: делаем WordPress дружелюбнее к nginx»

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

*

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

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

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

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