WordPress, FastCGI и редирект 301: часть 2

Патч, исправляющий проблему редиректа с кодом 302 в FastCGI

Более изящное решение, нежели представленное в первой части (WordPress, FastCGI и редирект 301).

В первой части предлагалось при использовании web-сервера закомментировать проверку на SAPI (if ( php_sapi_name() != 'cgi-fcgi' )). Однако есть лучшее решение.

Сразу оговорюсь, что в официальном релизе оно вряд ли скоро окажется (ибо работает с PHP 4.4+, а разработчики хотят поддерживать такое старьё, как PHP 4.3), поэтому применять данное решение только на свой страх и риск.

Патч в формате unified diff (применять к wp-includes/pluggable.php):

[-]
View Code Diff
--- trunk/public/wp-includes/pluggable.php      (original)
+++ trunk/public/wp-includes/pluggable.php      (modified)
@@ -845,9 +845,7 @@
        if ( $is_IIS ) {
                header("Refresh: 0;url=$location");
        } else {
-               if ( php_sapi_name() != 'cgi-fcgi' )
-                       status_header($status); // This causes problems on IIS and some FastCGI setups
-               header("Location: $location");
+               header("Location: $location", null, $status);
        }
 }
 endif;

Идея в том, чтобы переложить ответственность по отправлению кода перенаправления на PHP (который справляется с этим успешнее, чем WordPress). Решение является рабочим, жалоб пока нет :-)

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

Автор: ; опубликовано в: nginx, Патчи; метки: FastCGI, nginx, PHP, redirect, WordPress, патч
13
Мар
2009

RSS Комментарии к статье «WordPress, FastCGI и редирект 301: часть 2» (3)  »

  1. Диана

    мне ещё рано такое изучать

  2. [...] этот недочёт WordPress методом, аналогичным описанному здесь: только вместо физического исправления файла функция [...]

  3. Спасибо интересно

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

Оставить комментарий к записи «WordPress, FastCGI и редирект 301: часть 2»

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

*

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

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

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

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