繁体   English   中英

NGINX + Wordpress提供ERR_TOO_MANY_REDIRECTS

[英]NGINX + Wordpress gives ERR_TOO_MANY_REDIRECTS

我一直在尝试使用NGINX作为网络服务器托管一个简单的Wordpress博客。 该博客托管在domain_name.com/blog下的子目录中。

主博客正确打开。 但是,当尝试在domain_name.com/blog/wp-admin下打开wp-admin时,我的浏览器显示ERR_TOO_MANY_REDIRECTS。

我不确定这是否与我的NGINX配置或wordpress配置有关。 以下是我的NGINX服务器块:

server {
  listen 80;
  server_name <domain_name.com>;
  root /var/www/html;
  index index.php;

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

  location ~ \.php$ {
    include fastcgi.conf;
    fastcgi_intercept_errors on;
    fastcgi_pass php;
  }

  location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
    expires max;
    log_not_found off;
  }
}

Wordpress安装在/ var / www / html / blog目录下。 数据库中“ siteurl”和“ home” wp_options的值都指向domain_name.com/blog。

解决这个问题的好方法是什么?

其他说明可能会有所帮助:当我尝试访问wp-content目录下的静态文件时,它们打开时没有任何问题。 那里没有重定向错误。

每当访问wp-admin时,WordPress通常会将http会话重定向到https 这可以使用wp-config.phpFORCE_SSL_LOGINFORCE_SSL_ADMIN设置来控制。

当反向代理终止SSL时,必须将原始连接通过https的事实传达给WordPress,以避免重定向循环。

您的反向代理应该设置诸如X-Forwarded-Proto标头。

您需要更改nginx配置,以便为WordPress正确设置HTTPS标志。

例如:

map $http_x_forwarded_proto $https_flag {
    default off;
    https on;
}

server {
    listen 80;
    server_name example.com;
    root /var/www/html;
    index index.php;

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

    location ~ \.php$ {
        include fastcgi.conf;
        fastcgi_intercept_errors on;

        fastcgi_param HTTPS $https_flag;
        fastcgi_pass php;
    }

    location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
        expires max;
        log_not_found off;
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM