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.
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.