IIS 7.5 Redirecionamento / URL Reescreve a versão móvel do site

7

Estou procurando uma solução do IIS (não de programação) para redirecionar um site para uma versão móvel do site. Parece que pode ser possível, mas não tenho certeza, com o IIS Redirect ou usando o IIS Rewrite 2.0 do IIS. Se este for o caso, como alguém faria isso?

Exemplo: mywebsite.com/ redireciona para (se dispositivo móvel) mywebsite.com/mobile

Nota: Estamos usando o redirecionamento do IIS para redirecionar http para https.

    
por thames 22.02.2011 / 16:42

1 resposta

5

Você deve poder usar uma condição na regra de regravação do 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>

Eu não tenho uma máquina 2008R2 para testar, e certifique-se de que minha sintaxe está correta, mas deve ser o suficiente para você ir na direção certa.

O básico desta regra diz:

  • Corresponder qualquer URL
  • Contanto que o navegador não tenha o cookie "nomobile"
  • O URL de solicitação não já tem / mobile nele
  • O agente do usuário corresponde ao conteúdo de um arquivo.

Essa regra requer o uso de um provedor personalizado para que você possa armazenar todos os vários agentes do usuário que podem ser móveis (e há uma longa lista deles). Para configurar o provedor personalizado, dê uma olhada aqui .

Eu adicionei a verificação de cookie, pois algumas pessoas ainda gostam de ver o site em tamanho real, mesmo em seu dispositivo móvel. Isso dá a você uma maneira de lidar com isso definindo um cookie no navegador e a regra os ignora.

Existe uma versão um pouco mais simples aqui que combina com alguns exemplos também.

    
por 14.03.2011 / 01:46