comportamento de reescrita ímpar do IIS

1

Também fiz esta pergunta em Stackoverflow , mas pensei este seria um lugar melhor para perguntar.

Temos a seguinte regra de reescrita no IIS7.5:

<rule name="Anything else to the event handler" enabled="true" stopProcessing="true">
  <match url="^(.*)$" />
  <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
    <add input="{PATH_INFO}" pattern="^.*(/index.cfm/).*$" negate="true" />
  </conditions>
  <action type="Rewrite" url="/index.cfm/{R:1}" appendQueryString="true" logRewrittenUrl="true" />
</rule>

No entanto, nunca coloca o / {R: 1} depois dele. Apenas vai para /index.cfm. Precisamos realmente obter a variável de referência, porque usamos isso em nossos scripts do ColdFusion (10). Um exemplo de url reescreveu que gostaríamos:

De: http://www.my-site.com/this.is.a.test/another.test

Para: http://www.my-site.com/index.cfm/this.is.a.test/another.test

Alguém que tenha uma ideia de por que não fará isso? (nota rápida: um erro do ColdFusion pode ocorrer ao executar a URL correta, mas eu não acho que isso causaria problemas com a reescrita?)

Note, ele realmente funciona quando você tenta o mesmo em um navegador (com a regra desabilitada) - mas não com uma regra de reescrita. Com a regra de reescrita, a variável cgi.PATH_INFO no CF retorna uma string vazia.

Além disso, o IIS diz que reescreveu a URL para index.cfm / this.is.a.test / another.test nos logs, o que é estranho. Usar um redirecionamento 301 em vez de uma reescrita faz com que ele funcione perfeitamente (não alterou nada sobre a regra, apenas o tipo de ação para redirecionar). Isso é para mim, muito estranho, já que eu esperaria que reescrever funcionasse da mesma forma que redirecionar, apenas a diferença que a reescrita é interna.

Também temos o Helicon Ape no nosso servidor, por isso, se você tiver uma solução para isso em mod_rewrite em vez do módulo IIS, por favor sugira-o.

    
por Deniz Zoeteman 11.07.2013 / 11:07

1 resposta

0

A questão era que precisávamos refazer a Ferramenta de Configuração do Coldfusion 10 depois de aplicarmos a nova atualização 11 ontem. Está funcionando agora.

    
por 11.07.2013 / 15:30