我一直在尝试使用 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 目录下的静态文件时,它们打开时没有任何问题。那里没有重定向错误。
每当访问
http
时,WordPress 通常都会将 https
会话重定向到 wp-admin
。这可以使用 FORCE_SSL_LOGIN
中的 FORCE_SSL_ADMIN
和 wp-config.php
设置进行控制。
当反向代理终止 SSL 时,必须将原始连接已结束的事实传达给 WordPress,以避免重定向循环。
您的反向代理应该设置标头,例如
https
。
您需要更改
X-Forwarded-Proto
配置,以便为 WordPress 正确设置
nginx
标志。例如:
HTTPS
需要在 wp-config.php 中添加以下行
/** 反向附加*/
if ($_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') $_SERVER['HTTPS']='on';
我从网上得到这个,但忘记了我应该归功于谁