NGINX + Wordpress 给出 ERR_TOO_MANY_REDIRECTS

问题描述 投票:0回答:2

我一直在尝试使用 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 目录下的静态文件时,它们打开时没有任何问题。那里没有重定向错误。

php wordpress redirect nginx fastcgi
2个回答
7
投票

每当访问

http
时,WordPress 通常都会将
https
会话重定向到
wp-admin
。这可以使用
FORCE_SSL_LOGIN
中的
FORCE_SSL_ADMIN
wp-config.php
设置进行控制。

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


您的反向代理应该设置标头,例如

https


您需要更改

X-Forwarded-Proto

配置,以便为 WordPress 正确设置

nginx
标志。

例如:

HTTPS



0
投票

需要在 wp-config.php 中添加以下行

/** 反向附加*/

if ($_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') $_SERVER['HTTPS']='on';

我从网上得到这个,但忘记了我应该归功于谁

© www.soinside.com 2019 - 2024. All rights reserved.