Назад | Перейти на главную страницу

Nginx - Цикл перенаправления Wordpress

Я использую nginx в качестве интерфейса для apache2. Apache2 будет обрабатывать весь динамический контент.

Это мой основной файл, где nginx является интерфейсом для apache и все динамические страницы перенаправляются на apache2:

server {
    listen 80; 

    root /var/www/websites/main/htdocs; 
    index index.html index.php index.htm;

    server_name *removed*;

    location / {
        try_files $uri $uri/ /index.php;
    }

    location ~ \.php$ {
        proxy_set_header X-Real-IP  $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header Host $host;
        proxy_pass http://127.0.0.1:81;
    }

    location ~ /\.ht {
        deny all;
    }
}

К сожалению, это приводит к возникновению цикла перенаправления с Wordpress.

Когда я использую следующую конфигурацию, веб-сайт загружается нормально, хотя nginx обрабатывает весь статический и динамический контент, что противоречит сути.

server {
    listen 80; 

    root /var/www/websites/main/htdocs;
    index index.html index.php index.htm;

    server_name *removed*;

    location ~* ^.+\.(ico|jpg|jpeg|gif|png|css|txt|js|flv|swf|html|htm|eot|woff|ttf|svg)$
    {
        access_log off;
        expires max;
        add_header Pragma public;
        add_header Cache-Control "public, must-revalidate, proxy-revalidate";
    }

    location / {
        proxy_set_header X-Real-IP  $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header Host $host;
        proxy_pass http://127.0.0.1:81;
    }

    location ~ /\.ht {
        deny all;
    }
}

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

Я понимаю, что прошло много времени с тех пор, как вы разместили свой вопрос, но если вы все еще боретесь ...

Я столкнулся с той же проблемой, что и вы, и решил ее благодаря этот блог. Насколько я могу судить, вам необходимо определить серверную часть для вашего прокси, используя модуль ngx_http_upstream_module (документация Вот). В nginx.conf включите следующие строки:

http {

[...]

upstream backend {
        ip_hash;
        server 127.0.0.1:8081; #or other IP-address:port config - you may add several
    }

[...]

  server {

  [...]

      location / {
            try_files $uri $uri/ /index.php;
            proxy_pass http://backend;
      }

  [...]

  } # END "server"

} # END "http"

добавить в свои темы WordPress function.php ->

remove_filter('template_redirect', 'redirect_canonical');

Попробуйте вместо этого: (Src: http://wiki.nginx.org/WordPress)

location / {
    try_files $uri $uri/ /index.php?$args;
}

РЕДАКТИРОВАТЬ: Я также рекомендую использовать PHP через FastCGI, а не через Apache.

Я думаю, что wordpress использует какие-то URL-адреса, ориентированные на поисковую оптимизацию, или перенаправления, поэтому вы идете как

index.php -> /nice-url -> index.php -> /nice-url 

из-за вашего try_files - block.

что произойдет, если вы получите прямой доступ к /index.php? что говорят ваши журналы?

вы должны искать квитанцию ​​о nginx-worpdress