Pergunta

Como reescrever URLs no ASP.NET?

Gostaria que os usuários pudessem ir para http://www.website.com/users/smith em vez de http://www.website.com/?user=smith

Foi útil?

Solução

Experimente o reescritor de URL de fusão gerenciado e o proxy reverso:

http://urlrewriter.codeplex.com

A regra para reescrever isso seria:

# clean up old rules and forward to new URL
RewriteRule ^/?user=(.*)  /users/$1 [NC,R=301]

# rewrite the rule internally
RewriteRule ^/users/(.*)  /?user=$1 [NC,L]

Outras dicas

A Microsoft agora envia um módulo oficial de reescrita de URL para IIS: http://www.iis.net/download/urlrewrite

Ele suporta a maioria dos tipos de reescrita, incluindo a configuração de variáveis ​​de servidor e curingas.

Ele também existirá em todas as instâncias Web do Azure prontas para uso.

Eu usei um httpmodule para reescrever URL de www.urlrewriting.net com grande sucesso (embora eu acredite em uma versão muito anterior e mais simples)

Se você tiver muito poucas regras reais de reescrita, os mapeamentos de URL integrados ao .NET 2.0 são provavelmente uma opção mais fácil, existem alguns artigos sobre eles na web, o 4guysfromrolla um parece bastante exaustivo, mas como você pode ver, eles não suportam mapeamentos de expressões regulares e, como tal, são bastante inúteis em um ambiente dinâmico (assumindo que "smith" em seu exemplo não é um caso especial, então eles seriam inúteis)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top