ASP.NET URL Reescrevendo

votos
30

Como posso reescrever URL de em ASP.NET?

Eu gostaria que os usuários sejam capazes de Goto http://www.website.com/users/smith vez de http://www.website.com/?user=smith

Publicado 05/08/2008 em 14:14
fonte usuário
Em outras línguas...                            


4 respostas

votos
23

Experimente o Rewriter Fusão Url Gerenciado e 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]
Respondeu 05/08/2008 em 14:18
fonte usuário

votos
20

Scott Guthrie abrange como fazer isso de forma nativa em .Net bastante extensivamente aqui .

Eu usei a abordagem HttpModule e funciona bem. É basicamente o que ManagedFusion está fazendo para você.

Respondeu 05/08/2008 em 14:28
fonte usuário

votos
5

Microsoft agora vem uma URL oficial Reescrevendo Módulo para IIS: http://www.iis.net/download/urlrewrite

Ele suporta a maioria dos tipos de reescrever incluindo a definição de variáveis ​​de servidor e curingas.

Ele também irá existir em todas as instâncias da web Azure fora da caixa.

Respondeu 01/10/2010 em 12:52
fonte usuário

votos
4

Eu tenho usado um HttpModule para reescrever url do www.urlrewriting.net com grande sucesso (embora eu acredito, uma versão muito mais cedo mais simples)

Se você tem muito poucas regras de reescrita real, então mapeamentos de url construídos no .NET 2.0 são provavelmente uma opção mais fácil, há uma gravação poucos ups destes na web, o 4guysfromrolla um parece bastante exaustiva, mas como você pode ver que eles não apoio mapeamentos de expressões regulares fazem são como tal prestado bastante inútil em um ambiente dinâmico (assumindo que "smith" no seu exemplo não é um caso especial, em seguida, estes seriam de nenhuma utilidade)

Respondeu 11/08/2008 em 14:44
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more