mit*_*esh 2 php wordpress redirect fastcgi nginx
我一直在尝试使用 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;
}
}
Run Code Online (Sandbox Code Playgroud)
WordPress 安装在 /var/www/html/blog 目录下。数据库中“siteurl”和“home”wp_options 的值都指向domain_name.com/blog。
解决这个问题的好方法是什么?
可能有用的附加说明:当我尝试访问 wp-content 目录下的静态文件时,它们打开时没有任何问题。那里没有重定向错误。
WordPress 通常会http在https访问wp-admin. 这可以使用中的FORCE_SSL_LOGIN和设置来控制。FORCE_SSL_ADMINwp-config.php
当反向代理终止 SSL 时,必须将原始连接已结束的事实https传达给 WordPress,以避免重定向循环。
您的反向代理应该设置标头,例如X-Forwarded-Proto.
您需要更改nginx配置,以便HTTPS为 WordPress 正确设置标志。
例如:
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;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10152 次 |
| 最近记录: |