Назад | Перейти на главную страницу

IIS 7.5 Redirect / URL Rewrite в мобильную версию сайта

Я ищу решение IIS (не программирование) для перенаправления веб-сайта на мобильную версию веб-сайта. Похоже, что это возможно, но не уверен, с перенаправлением IIS или с помощью IIS URL Rewrite 2.0. Если это так, как бы это сделать?

Пример: mywebsite.com/ перенаправляет (если мобильное устройство) на mywebsite.com/mobile

Боковое примечание: в настоящее время мы используем перенаправление IIS для перенаправления http на https.

Вы должны иметь возможность использовать условие в своем правиле перезаписи IIS.

<rule name="MobileBrowser" stopProcessing="true">
  <match url=".*" />
  <conditions logicalGrouping="MatchAll">
    <add input="{HTTP_COOKIE}" pattern="nomobile" ignoreCase="true" negate="true" />
    <add input="{REQUEST_URI}" pattern="/mobile.*" negate="true" />
    <add input="{FileContains:{HTTP_USER_AGENT}}" pattern=".+" />
  </conditions>
  <action type="Rewrite" url="http://mysite.com/mobile" appendQueryString="false" redirectType="Found" />
</rule>

У меня нет машины 2008R2 для тестирования, и я должен убедиться, что мой синтаксис верен, но этого должно быть достаточно, чтобы вы в правильном направлении.

Основы этого правила гласят:

  • Соответствовать любому URL
  • Пока браузер не иметь "мобильный" cookie
  • URL запроса делает не уже есть / мобильный в нем
  • Пользовательский агент соответствует содержимому файла.

Это правило требует использования настраиваемого провайдера, чтобы вы могли хранить все различные пользовательские агенты, которые могут быть мобильными (и их длинный список). Чтобы настроить настраиваемого поставщика, посмотрите Вот.

Я добавил проверку файлов cookie, поскольку некоторым людям все еще нравится просматривать сайт в полном размере даже на своем мобильном устройстве. Это дает вам способ справиться с этим, установив файлы cookie в своем браузере, и правило их пропускает.

Есть вариант чуть попроще Вот это тоже соответствует паре примеров.