WordPress wp-admin在IIS ARR反向代理之后redirect循环

我有一个独特和有趣的设置,从我所能告诉的一个有趣的问题。 我有一个Windows Server 2012框作为我的主Web服务器托pipewebsite.com。 在http://website.com/sites/我有一个ARR反向代理设置,将所有内容都指向运行Apache的Debian框上的Wordpress WPMU安装。 这是重写规则configuration:

在这里输入图像说明

现在,一切工作正常,但搞砸了一件事是,如果我通过反向代理去任何wp-admin /页面,我得到一个redirect循环:

在这里输入图像说明

为了准确描述我所描述的内容,下面是我的.htaccess文件和我的wp-config.php文件 (省略了明显的东西)。

我觉得有趣的是,如果我改变我的本地主机文件指向我的域到Debian的IP地址,并绕过IIS ARR,那么WP – pipe理/工作得很好,没有问题。 这似乎是我的问题是IIS和Apache之间的翻译的地方? 我不知道要看什么,并进一步debugging。

任何帮助将超级赞赏!

可能发生这种情况是因为主机头被ARR修改了。

GET http://10.48.100.27/ HTTP/1.1 Host: 10.48.100.27 

 HTTP/1.1 301 Moved Permanently Location: http://example.com/ 

使用preserveHostHeader设置保持标头不变。

https://stackoverflow.com/a/7180527/991267

我想知道如果正则expression式在Apache中的重写引擎变得困惑。 你有没有尝试禁用.htaccess文件,并访问“… / wp-admin /”中的实际文件为“… / wp-admin / admin.php”,而不是?

解决这个问题的方法将包括确定实际问题。

由于安全要求,如果需要,我会暂时在pipe理站点中禁用https ,在testing或登台networking中。

然后,我会嗅探来自IIS / ARR主机或Apache主机的相关stream量,以查看当您调用pipe理页面时主机之间实际发生的事情。 客户端和IIS之间以及客户端和Apache之间的stream量控制转储可能也有帮助。 使用你最喜欢的嗅探器,否则让我build议使用Windows的Wireshark或Linux的tcpdump 。

我很确定你会很快看到是否有redirect问题,正则expression式的URL解释问题或其他。 解决scheme当然取决于你实际find的东西。

这是我知道debugging反向代理怪异的最好方法,因为我们可以用缩小问题范围的事实来工作,而不是扩大它的猜测。

为了获得分析方面的帮助,我将发布两个过滤的数据包转储:一个用于通过IIS反向代理,另一个用于直接连接到Apache,突出显示差异。