Microsoft  changed Internet Explorer’s User-Agent string in IE11. This change is causing many applications the ability to identify IE browsers, like “Access Gateway Login pages” and the result of it could look like this:

The easiest fix for this is to upgrade the firmware on your Access Gateway Netcalers to “10.1, 10.5 or 11.x releases” due Citrix already embedded the support for IE11 there.

But for those that did not do that yet, NetScaler can resolve the IE11 Compatibility issues.
s Compatibility View, websites will be displayed as if you were viewing them in a previous version of Internet Explorer (IE7) which will often correct display problems, but not at all times (Storefront logon pages and Access Gateway will still look weird):


So  Let’s tell our Netscalers to fix this for good.

By creating the following AppExpert rewrite action, We can add the IE9 compatibility instruction to the origin content:

add rewrite action NG-IE11 insert_after_all “HTTP.RES.BODY(6000)” q/”\r\n”+”<META http-equiv=\”X-UA-Compatible\” content=\”IE=EmulateIE9\”>”/ -search “text(\”</TITLE>\”)”

When repairing Citrix Access Gateway login pages, use the following policy and bind it as a Global Override:

add rewrite policy NG-IE11_rwpol “HTTP.REQ.URL.PATH.ENDSWITH(\”/vpn/index.html\”)” NG-IE11
bind rewrite global NG-IE11_rwpol 100 NEXT -type RES_OVERRIDE

That’s it, Our customers should be happy now when the page looks like this:



Additional configuration if you are doing pre-authentication or post scan:

In case you are doing any kind of pre-authentication or post scan you may like to add the following code as well:

add rewrite policy NG-IE11_epa_rwpol “HTTP.REQ.URL.PATH.ENDSWITH(\”/epa/epa.html\”)” NG-IE11
add rewrite policy NG-IE11_posterrorpage_rwpol “HTTP.REQ.URL.PATH.ENDSWITH(\”/epa/posterrorpage.html\”)” NG-IE11
add rewrite policy NG-IE11_faq_rwpol “HTTP.REQ.URL.PATH.ENDSWITH(\”/epa/faq.html\”)” NG-IE11
add rewrite policy NG-IE11_errorpage_rwpol “HTTP.REQ.URL.PATH.ENDSWITH(\”/epa/errorpage.html\”)” NG-IE11
bind rewrite global NG-IE11_epa_rwpol 50 NEXT -type RES_OVERRIDE
bind rewrite global NG-IE11_posterrorpage_rwpol 60 NEXT -type RES_OVERRIDE
bind rewrite global NG-IE11_faq_rwpol 70 NEXT -type RES_OVERRIDE
bind rewrite global NG-IE11_errorpage_rwpol 80 NEXT -type RES_OVERRIDE