我有两个应用程序。一个是 nextjs 应用程序,另一个是 WordPress 应用程序。两者都在不同的实例中运行。
为了从我的主站点提供我的 WordPress 博客,例如https://example.com/blog,我已将以下代理添加到我的主要站点的 nginx 服务器配置中,
location ^~ /blog/ {
http2_push_preload on;
proxy_pass https://blog.exmaple.com/;
proxy_http_version 1.1;
proxy_set_header Host blog.example.com;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_cache_bypass $http_upgrade;
}
如果我单击管理门户中的任何保存按钮,那么它会在下次加载时从 URL 中删除“博客”字样,例如“https://exmaple.com/wp-admin/options-general.php?settings-updated=true”,并在主站点中给出 404,而它应该是“https://example.com/blog/wp-admin/options-general.php?settings-updated=true”。
我还更新了 WordPress URL。所有其他 URL(如主页、博客文章、页面、媒体等)都可以找到。
我在这里做错了什么?请随时询问更多信息以进行澄清。
答案1
以下是我采取的解决方法,
我重定向任何https://example.com/wp-admin到https://example.com/blog/wp-admin随着我的nginx
配置文件发生这样的变化,
location /wp-admin {
rewrite ^/wp-admin(/.*)?$ /blog/wp-admin$1 permanent;
}
附言:不知为何,我觉得这不是最好的办法,但目前我唯一能做的就是这个。我希望有人能想出更好的解决方案。