我最近把我开发的WordPress网站交给了一个IT团队,负责我客户的web环境。他们不是WordPress的人,我也无法接触环境。由于他们使用的环境,目前存在一些问题,我将对此进行解释:
服务器A(Web服务器)域名(http://example.com) 点击此处,进行重写,并将流量路由到服务器B或C。运行电子商务CMS的服务器B(App Server)。到的流量http://example.com/shop 在这里路由运行WordPress站点的服务器C(WordPress服务器)。到的流量http://example.com/blog 在此处布线,下面是一些重要注意事项:
WP中的WordPress地址和站点地址设置为http://example.com/blog.已搜索并替换WordPress数据库,因此所有URLhttp://example.com/blog中的页面和资源frontend 尽管有这些事实,但是backend 仍在使用服务器IP地址URL的WordPress的。例如,帖子/页面列表中的所有分页控件。
此外,后端中的任何形式都会被破坏。例如,如果我尝试删除一个插件,那么处理delete按钮的表单将具有POST
映射到的操作/wp-admin/plugins.php?action=delete-selected...
这当然意味着它忽略了/blog/
站点地址中的子目录,然后是404s。我认为这个问题是服务器a试图重写该请求的结果。
还有其他问题,但它们都归结为WordPress似乎不知道它的URL是什么。我的观点是,由于服务器C的设置,它导致在PHP执行以下操作的地方使用错误的URL:
$current_url = set_url_scheme( \'http://\' . $_SERVER[\'HTTP_HOST\'] . $_SERVER[\'REQUEST_URI\'] );
HTTP_HOST
使用主机标头,
if one is present, 否则,它必须从服务器获取该值,该值当前是IP地址。
My question is... 我们如何在WordPress中调整此设置并修复这些URL问题?