Цикл перенаправления WordPress nginx

Итак, вчера у меня возник вопрос о том, как установить wordpress в каталог «/ root». Я был не очень успешным в этом, и я отказался от этого.

Итак, прямо сейчас wordpress находится под папкой « / var / www / wordpress » (так что это находится в отдельной папке) (я использую Ubuntu 12.04 LTS, если это имеет значение).

И моя проблема в том, что сразу после того, как я сконфигурировал все (все работает как шарм), я был перенаправлен на страницу панели администратора. Все работало нормально до тех пор, пока я не попытался посетить блог.

URL-адрес моего блога: «blog.mysite.com». Вот почему я использую NGINX, потому что у меня есть два разных приложения (и среды) на одном сервере, и мне нужно различать их.

Итак, факт: blog.mysite.com/wp-admin (/wp-login.php) работает полностью нормально, но когда я нахожусь на первой странице: blog.mysite.com , он продолжает говорить мне, что есть бесконечный цикл переадресации (301 переадресация в соответствии с файлом журнала nginx).

На панели администратора у меня есть «адрес (адрес) WordPress» и «адрес сайта (URL)», установленный на: « http://blog.mysite.com ». Изменение любого из них на что-то другое, например: « http://blog.mysite.com/wordpress » вообще не помогает!

Файл .htaccess пуст, но я использую стандартные константы по умолчанию, поэтому не должно быть проблемой (однако, я не уверен).

Как корневые директивы nginx, так и apache2 указывают на «/ var / www / wordpress». Статические файлы (css, js) работают, если это имеет значение.

Как я могу исправить эту проблему? Любая помощь высоко ценится!

Заранее спасибо!

Наконец, нашли решение:

http://www.violato.net/blog/php/88-wordpress-did-infinite-301-redirect-loop

Надеюсь, это поможет другим, которые имеют ту же проблему, что и я.

Всем спасибо.

Не самое красивое исправление, но удаление фильтра перенаправления в вашей теме. Файл functions.php работал для меня.

 remove_filter('template_redirect', 'redirect_canonical'); 

Из ссылки, приведенной в ответе OP:
WordPress сделал бесконечный цикл 301 переадресации

У меня было много проблем при переходе с Apache на Nginx в прошлом, все решалось, когда я очищал Apache, что каким-то образом мешало Nginx и вызывало проблемы для каждого сервера. Вот моя конфигурация wordpress для Nginx, в соответствии с руководствами Nginx и WordPress для друг друга:

 server { listen 80; server_name blog.mysite.com; root /var/www/wordpress; index index.php; charset utf-8; location / { try_files $uri $uri/ /index.php?$args; } location ~* ^.+\.(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|rss|atom|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ { access_log off; log_not_found off; expires max; } location ~ \.php$ { try_files $uri /index.php; fastcgi_split_path_info ^(.+\.php)(/.+)$; # CHANGE THE LINE ABOVE IF NEEDED fastcgi_pass unix:/run/php-fpm/php-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } 

Мне даже не пришлось ничего менять на панели администратора при переключении серверов, это просто отлично работало.

В моем случае цикл перенаправления затрагивал только страницы wp-admin, поэтому я добавил в начале строки

 if (is_admin) remove_filter('template_redirect', 'redirect_canonical'); 

и все еще работает, плюс каноническая переадресация продолжает выполнять свою работу на переднем конце!

Надеюсь, это поможет кому-то еще!

У меня была аналогичная проблема с использованием Nginx в качестве обратного прокси для Apache.

Через несколько часов я узнал, что это вызвано $_SERVER["REQUEST_URI"] , установленным index.php Nginx вместо фактического URL-адреса, и WordPress пытался удалить index.php путем перенаправления на url без index.php в wp-includes/canonical.php .

Решение для меня использует что-то вроде этого,

 proxy_pass http://111.111.111.111:8080$request_uri; 

Поэтому добавление $request_uri исправило это.