Usando operações matemáticas no módulo de reescrita de URL do IIS 7

1

Eu baixei o módulo URL Rewrite para o IIS 7. Estou tentando reescrever o URL deste formulário: link para link (obtenha o número e reescreva seu modulu em 1000).

Vi que o módulo de reescrita suporta regex, mas não encontrei onde aplicar operações matemáticas (se possível) à URL.

Ficarei feliz em receber ajuda com isso! Obrigado :)

link do módulo de reescrita da url

    
por Nir 11.10.2010 / 17:48

1 resposta

1

Infelizmente, não há suporte para isso, mas você pode usar algumas linhas de C # para fazer isso. Você pode seguir o tutorial em: link

Basicamente você incluiria uma regra conceitualmente como esta:
<rule name="Modulus Rewrite">
<match url="(.*)/([\d+])$" />
<action type="rewrite" url="{R:1}{Modulus:{R:2}}" />
</rule>

onde você captura o URL, mas separadamente o segmento com números, e passa para o provedor personalizado

E o seu código será parecido com o código abaixo e você usará uma tag < condition > para

public class ModulusProvider: IRewriteProvider
{

    public void Initialize(IDictionary<string, string> settings, IRewriteContext rewriteContext)
    {
    }

    public string Rewrite(string value)
    {    
        int iVal;
        if (int.TryParse(value, out iVal)) {
            return (iVal % 1000).ToString(CultureInfo.InvariantCulture);
        }
        return String.Empty;
    }
} 
    
por 12.11.2010 / 06:16