Como configurar a reescrita de URL do IIS7.x com o Dispatcher

Problema, Pergunta

Quando tento configurar regras de reescrita no IIS com o Dispatcher instalado, recebo erros 500.  Como faço para configurar o módulo de reescrita de URL do IIS7 para que ele funcione com o Dispatcher CQ?

Resolução, resposta

Configurar o IIS 7.x

Para instalar as instruções do IIS7.x aqui:
http://learn.iis.net/page.aspx/29/installing-iis-7-on-windows-server-2008-or-windows-server-2008-r2/

Ao instalar o IIS, ative todos os recursos.

Configurar a reescrita de URL do IIS

Será necessário usar o módulo de reescrita de URL do IIS.  Para instalá-lo, clique no botão de instalação no lado direito desta página da Web:
http://www.iis.net/download/urlrewrite

Configurar o Dispatcher

Para instalar o dispatcher no IIS7, siga as instruções daqui:
http://dev.day.com/docs/en/cq/current/deploying/dispatcher.html#Microsoft%20Information%20Server

Configurar a Reescrita de URL para funcionar com a compactação gzip

Nesta etapa, configuraremos o recurso de compactação gzip do IIS para que ele funcione com a reescrita de saída de URL (com uma configuração padrão, esses dois recursos entram em conflito).

  1. Vá para "Iniciar" > "Ferramentas Administrativas" > "Gerenciador dos Serviços de Informações da Internet (IIS)"
  2. No gerenciador do IIS, navegue pela árvore e selecione o site do IIS onde você configurou o dispatcher.
  3. Clique duas vezes em "Compressão"
  4. Desmarque a opção "Habilitar compactação estática de conteúdo".
  5. Vá para Iniciar e clique em
  6. Na caixa de edição "Pesquisar programas e arquivos", digite "cmd" e pressione Ctrl+Shift+Enter (isso executará o comando como Administrador)
  7. No prompt de comando administrativo, digite o seguinte para adicionar a entrada de registro LogRewrittenUrlEnabled:
    reg add HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\InetStp\Rewrite /v LogRewrittenUrlEnabled /t REG_DWORD /d 0
  8. Volte para a janela "Gerenciador de Serviços de Informações da Internet (IIS)" e, mais uma vez, vá para o site do dispatcher. Em seguida, clique duas vezes em "Editor de configurações" e verifique se a propriedade dynamicCompressionBeforeCache está definida como False para o elemento de configuração /system.webServer/urlCompression.
  9. Volte para a visualização do site principal (clique no site na árvore da esquerda)
  10. Clique duas vezes em "Módulos".
  11. Na tela de módulos, no lado direito, clique em "Exibir lista ordenada..."
  12. Mova o módulo de reescrita de URL (RewriteModule) para baixo do módulo de compactação dinâmica (DynamicCompressionModule)

Configurar as regras de reescrita de amostra

Nesta etapa, configuraremos algumas regras de reescrita de amostra para o site www.geometrixx.com. Essas regras reescreverão os URLs de extensão .html para que não contenham mais /content/geometrixx. Por exemplo, em uma instância de publicação CQ5, é possível acessar http://localhost:4503/content/geometrixx/en.html. Com essas regras de reescrita, se o servidor IIS for acessado com o nome de host do dns www.geometrixx.com, será possível acessar http://www.geometrixx.com/en.html e ser levado a /content/geometrixx/en.html.

Para configurar regras de reescrita que funcionem consistentemente com o módulo dispatcher, será necessário configurá-las no nível do servidor. Além disso, é muito mais rápido configurar essas regras modificando o arquivo xml applicationHost.config do IIS do que usando a interface do usuário. Por isso, essas instruções seguem esse método.

  1. Vá para "Iniciar".
  2. Digite o texto "bloco de notas" na caixa "Pesquisar programas e arquivos" e pressione Ctrl+Shift+Enter (para executar o comando como administrador)
  3. Clique em "Sim" no pop-up que pergunta "Deseja permitir que o programa a seguir faça alterações neste computador?"
  4. No bloco de notas, vá para "Arquivo" > "Abrir"
  5. Na caixa de diálogo, copie e cole este caminho: c:\Windows\system32\inetsrv\config\applicationHost.config e pressione Enter. Agora, o conteúdo do arquivo applicationHost.config será exibido no bloco de notas.
  6. Copie e cole o seguinte logo antes da tag xml final </system.webServer>
    <rewrite>
    <globalRules>
    <rule name="Root Context 1" enabled="true">
    <match url="^(.*)\.html(.*)" />
        <action type="Rewrite" url="/content/geometrixx/{R:1}.html{R:2}" appendQueryString="false" />
          <conditions>
            <add input="{HTTP_HOST}" pattern="^www.geometrixx.com" />
            <add input="{REQUEST_URI}" pattern="^/etc/" negate="true" />
            <add input="{REQUEST_URI}" pattern="^/etc$" negate="true" />
            <add input="{REQUEST_URI}" pattern="^/bin/" negate="true" />
            <add input="{REQUEST_URI}" pattern="^/system/" negate="true" />
            <add input="{REQUEST_URI}" pattern="^/libs/" negate="true" />
            <add input="{REQUEST_URI}" pattern="^/libs$" negate="true" />
            <add input="{REQUEST_URI}" pattern="^/var/" negate="true" />
            <add input="{REQUEST_URI}" pattern="^/tmp/" negate="true" />
            <add input="{REQUEST_URI}" pattern="^/tmp$" negate="true" />
            <add input="{REQUEST_URI}" pattern="^/crx/" negate="true" />
            <add input="{REQUEST_URI}" pattern="^/crx$" negate="true" />
            <add input="{REQUEST_URI}" pattern="^/content/" negate="true" />
            <add input="{REQUEST_URI}" pattern="^/crxde$" negate="true" />
            <add input="{REQUEST_URI}" pattern="^/apps/" negate="true" />
            <add input="{REQUEST_URI}" pattern="^/apps$" negate="true" />
            <add input="{REQUEST_URI}" pattern="^/scripts/disp_iis" negate="true" />
            <add input="{REQUEST_URI}" pattern="^/dispatcher/invalidate" negate="true" />
      </conditions>
    </rule>
    </globalRules>
      <outboundRules>
        <rule name="rewrite output" enabled="true">
          <match filterByTags="A, Area, Base, Form, Frame, Head, IFrame, Img, Input, Link, Script" pattern="^/content/geometrixx/(.*)\.html(.*)$" />
          <action type="Rewrite" value="/{R:1}.html{R:2}" />
          <conditions>
          </conditions>
        </rule>
      </outboundRules>
    </rewrite>
  7. No bloco de notas, pressione Ctrl+s para salvar
  8. Vá para "Iniciar" > "Ferramentas Administrativas" > "Gerenciador dos Serviços de Informações da Internet (IIS)"
  9. Selecione/expanda o nó superior na árvore (o ícone do servidor)
  10. Clique com o botão direito do mouse no ícone do servidor e clique em "Parar" para parar o servidor.
  11. Quando ele estiver parado, volte e clique em "Iniciar".
  12. Selecione o ícone do servidor no Gerenciador do IIS.
  13. No painel direito, clique duas vezes em "Reescrita de URL".
  14. Agora você deve ver as regras de amostra que adicionamos por meio dos arquivos xml.

 Adobe

Receba ajuda com mais rapidez e facilidade

Novo usuário?

Adobe MAX 2024

Adobe MAX:
a conferência da criatividade

14 a 16 de outubro, Miami Beach e online

Adobe MAX

A conferência da criatividade

14 a 16 de outubro, Miami Beach e online

Adobe MAX 2024

Adobe MAX:
a conferência da criatividade

14 a 16 de outubro, Miami Beach e online

Adobe MAX

A conferência da criatividade

14 a 16 de outubro, Miami Beach e online