Неправильный пользовательский агент WP8.1 на IISExpress

У меня следующая ситуация:

  • Я размещаю локальный сервер с Webmatrix 3 (использует внутренне IISExpress), PHP 5.5
  • Я открыл Webmatrix для обслуживания внешнего (т.е. в локальной сети) трафика
    • командная строка netsh http add urlacl url=http://mycomputername...:8080/ user=\Jeder (все на немецком языке)
    • привязка localhost к mycomputername в applicationhost.config <binding protocol="http" bindingInformation="*:8080:mycomputername" />
    • открыл входящие запросы в моем брандмауэре для порта 8080
  • Я установил Kirby CMS на свой локальный сервер, который Я могу связаться в локальной сети с WP8.1 Lumia 1020 и Nexus 5. При доступе к панели администратора Я получаю ошибку http 500 на IE на Lumia не на Nexus.

Я проверил пользовательские агенты по <?php echo $_SERVER['HTTP_USER_AGENT'];?> что приводит к правильной строке для Nexus 5, но не для Lumia. На внешний ua-checker Lumia возвращается корректно "Mozilla/5.0 (Windows Phone 8.1; ARM; Trident/7.0; Touch; tv:11.0; IEMobile/11.0; NOKIA; 909) like Gecko",

Но локально Lumia возвращается Mozilla/4.0 (compatible; MSIE 7.0; Windows Phone OS 7.0; Trident/3.1; IEMobile/7.0; NOKIA; 909),

Это также регистрируется, например, в файлах журнала IIS (IISExpress / Logs / MyWebsite / ex150112.log)

#Software: Microsoft Internet Information Services 8.0
2015-01-12 23:28:22 ... POST /panel/login - 8080 - ... Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+Phone+OS+7.0;+Trident/3.1;+IEMobile/7.0;+NOKIA;+909) http://mycomputername:8080/panel/login 500 0 0 93

Я думаю, что IEMobile внутренне использует некоторый режим совместимости, который мы знаем из Desktop-IE. Но почему только для этого местного сайта?

Короче говоря, почему IEMobile / WP8.1 отправляет неверную строку user-agent? Это из-за странной установки IISExpress PHP5.5, которая приводит к ложному обнаружению? Или WP8.1 всегда отправляет false ua на локальный сайт Webmatrix? Или это ошибка в IEMobile?
И как можно поменять полученный ua на стороне сервера на правильный ua?

1

Решение

Я исправил это сам (источник: http://msdn.microsoft.com/de-de/cc817572.aspx)
Я просто добавил настраиваемый заголовок http для отключения wp8, чтобы выбрать режим совместимости для сайтов интрасети, используя следующую запись в файле web.config.

<system.webServer>
<httpProtocol>
<customHeaders>
<clear />
<add name="X-UA-Compatible" value="IE=EDGE" />
</customHeaders>
</httpProtocol>
</system.webServer>
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]