我已经将一个shellinabox终端集成到我的rails应用程序中,但是当我试图在IE11中访问它时,它说‘不能显示页面’。它适用于我测试过的所有其他浏览器,包括IE的其他版本,而不是IE11。通过apache配置中的以下行将请求路由到shellinabox守护进程:
<Location /shell>
Order allow,deny
Allow from all
</Location>
RewriteRule ^/shell(.*)$ http://localhost:4200$1 [P]
ProxyPassReverse /shell http://localhost:4200任何想法都会很感激,我真的不知道从哪里开始这个
发布于 2014-08-28 14:11:54
我今天遇到了这个问题并解决了它。ShellInABox已经为IE实现了一个修复程序,它无法处理压缩的SSL数据。但是,为了启用此修复,它只检查自IE11以来不再包含MSIE的useragent字符串。所以你得把它换成三叉戟。
这个补丁适合我
--- libhttp/httpconnection.c.orig 2012-04-21 19:30:44.000000000 +0200
+++ libhttp/httpconnection.c 2014-08-28 15:48:06.000000000 +0200
@@ -568,7 +568,7 @@
// also has difficulties with SSL connections that are being proxied.
int ieBug = 0;
const char *userAgent = getFromHashMap(&http->header, "user-agent");
- const char *msie = userAgent ? strstr(userAgent, "MSIE ") : NULL;
+ const char *msie = userAgent ? strstr(userAgent, "Trident") : NULL;
if (msie) {
ieBug++;
}希望能帮助其他人:)
发布于 2015-09-02 08:52:50
my Fix to support Edge:
--- libhttp/httpconnection.c.original 2012-04-21 19:30:44.000000000 +0200
+++ libhttp/httpconnection.c 2015-09-02 10:48:52.283128781 +0200
@@ -569,6 +569,8 @@ void httpTransfer(struct HttpConnection
int ieBug = 0;
const char *userAgent = getFromHashMap(&http->header, "user-agent");
const char *msie = userAgent ? strstr(userAgent, "MSIE ") : NULL;
+ if (!msie) msie = userAgent ? strstr(userAgent, "Trident") : NULL;
+ if (!msie) msie = userAgent ? strstr(userAgent, "Edge") : NULL;
if (msie) {
ieBug++;
}https://stackoverflow.com/questions/22529796
复制相似问题