Exclua um diretório de um reescriture usando o ISAPI Rewrite 3
-
28-09-2019 - |
Pergunta
Basicamente, adicionei recentemente a regra abaixo no meu httpd.conf para reescrita ISAPI em um servidor do IIS para garantir que ele sempre padronize os nomes de arquivos e diretórios de baixo caso.
RewriteRule ^(.*[A-Z].*)$ $1 [CL,R=301,L]
Tudo isso é bom e dândi para todas as partes do site, exceto por um diretório que podemos chamar /MisbehavingDir
, o código nesse diretório específico é preenchido com nomes de arquivos em caso misto e muitos scripts do lado do servidor e do cliente que teriam que ser reescritos para usar todo o caso inferior para funcionar corretamente (com o reescritor acima, parece atingir Alguns 301s nos lugares errados, o que faz com que parte do site funcione mal, para dizer o mínimo).
Como não estou com disposição para reescrever essa parte do site, eu adoraria encontrar uma boa maneira de modificar o regex acima, para que corresponda tudo, exceto caminhos começando com o comportamento mal e, já que meu regex-fu não é realmente bom Chega, imaginei que eu perguntaria aqui.
Existe uma solução simples "bonita" para isso que alguém quer compartilhar ou devo apenas reservar vários dias para reescrever o aplicativo, depois testá -lo e passar por toda essa dança?
Solução
Bem, aparentemente o truque era adicionar uma declaração de reescrita que se parece com algo como RewriteCond %{URL} ^(?!/MisbehavingDir/.*$)
Para fazer o ISAPI reescrever pular a próxima regra.