下载受保护的XLS文件时,为什么.htaccess会在IE中触发两次?

时间:2009-02-18 19:37:32

标签: apache excel .htaccess

某些目录受Basic Auth使用较旧的Apache 1.x服务器上的.htaccess文件保护。今天,用户指出用户名/密码是为他刚刚发布的文件请求两次 - 一次进入目录查看索引,然后下载文件时再加上AGAIN。发现这很奇怪,我研究了双击.htaccess身份验证的常见问题:

没有运气。令人困惑的是Firefox / Chrome / Safari不会问两次 - 只有IE(6和7)。进一步调查表明,PDF文件不会发生这种情况 - 只有Excel文件 - 甚至是空白文件。

Excel以某种方式回调服务器需要第二次身份验证吗?为什么它只发生在IE?

并不重要 - 但我很好奇是什么导致了这一点。

编辑 - 我认为bmdhacks钉了它。观察网络流量,Excel + IE使用名为“Microsoft Protocol Discovery”的其他用户代理发回第二个请求

1 个答案:

答案 0 :(得分:2)

我不确定Excel,但是Windows Media Player与IE有特殊的交互,当IE请求具有Windows Media Player所拥有的MIME类型的文件时,它不会将下载的文件交给WMP,而是指示Windows媒体播放器下载文件本身。这可能导致请求文件两次,一次是IE请求文件,另一次是WMP下载文件。

Microsoft也可能在Excel等其他产品中使用此机制。您可以通过查看第二个请求中提交的User-Agent标头来发现这一点。在Windows Media的情况下,它实际上在第二次请求时从IE更改为WMP的User-Agent。