Pergunta

Examinei vários reescritores de URL para ASP.Net e IIS e fiquei me perguntando o que todo mundo usa e por quê.

Aqui estão os que usei ou olhei:

Foi útil?

Solução

+1 UrlRewritingNET.URLRewrite - usado em várias centenas de serviços/portais/sites em uma única caixa sem problemas por anos!(@Jason - é disso que você está falando, certo?)

e também usei o URLRewriter.NET em um site pessoal e achei interessante.@travis, você está certo sobre a mudança de sintaxe, mas depois que você se acostuma, fica bom.

Outras dicas

Existe o System.Web.Routing que acabou de ser lançado com o .NET 3.5.

Você pode simplesmente usar Request.RewritePath() em um HttpModule personalizado

Prefiro usar uma implementação IHttpHandlerFactory e ter controle total sobre todos os URLs recebidos e para onde eles são mapeados.

Se eu estivesse iniciando um novo projeto web agora, tentaria usar o MVC do zero.Isso usa URLs reescritos como padrão.

O IIS 7 tem um Módulo de reescrita de URL que é bastante capaz e se integra bem ao IIS.

Já usei o UrlRewriting.NET antes em um site de tráfego muito alto - funcionou muito bem para nós.Acredito que os desenvolvedores sejam alemães, então a documentação em inglês provavelmente não é tão boa quanto poderia ser.Eu recomendo.

Tive uma boa experiência com Filtro de reescrita ISAPI do Ionic que é muito semelhante ao ISAPI_Rewrite, exceto que é gratuito.Ambos são modelados após mod_rewrite e são filtros ISAPI, portanto você não pode gerenciá-los no código, pois é necessário configurá-los no IIS.

Eu não recomendaria o UrlRewritingNet se você estiver em um ambiente IIS7 Windows 2008.

Razão:UrlRewritingNet requer que seu modo pool de aplicativos = Clássico e NÃO integrado.Isso também não é ideal, o projeto deles parece muito morto nos últimos 2 anos.

Acabei de instalar Reescrita ISAPI 3 da Helicon.Funciona exatamente como o htaccess.Estou curtindo até agora.

eu usei Reescritor de URL .NET e proxy reverso com grande sucesso.Está quase no mesmo nível do mod_rewrite e usa quase todas as mesmas sintaxes.O proprietário do projeto é extremamente prestativo e amigável e o produto funciona muito bem.Esta joia fornece funcionalidade de reescrita e proxy, que muitas soluções não oferecem.OMI, vale a pena dar uma olhada.

+1 para UrlRewritingNet.UrlRewrite também, mas por que sempre preciso terminar meu URL com .aspx?Eu acho que deveria ser melhorado um melhor padrão de expressão regular.

Por que sempre tenho que terminar com aspx em virtualURL localhost/Products/Beverages.aspx", "localhost/Products/Condiments.aspx".Eu só quero digitar localhost/Products/Beverages", "localhost/Products/Condiments" que se parece com a rota MVC.

Esse um parece bom, mas não está funcionando no meu site.Eu ainda não consigo entender.

O roteamento asp.net também atende ao requisito de reescrita de URL e até muito mais do que isso.Com o roteamento asp.net, você não pode apenas "reescrever o URL", mas também criar manipuladores personalizados para várias solicitações.o roteamento asp.net, entretanto, requer pelo menos asp.net sp1.

A coisa básica que você faz para que um roteamento simples funcione é adicionar alguns manipuladores de rota no Application_Start, mesmo dentro do arquivo Global.asax.cs.

 protected void Application_Start(object sender, EventArgs e)
        {

                        RegisterRoutes(RouteTable.Routes);


        }
        private static void RegisterRoutes(RouteCollection routes)
        {          

            routes.Add("Routing1", new Route("/Blog/id/2","/Blog.aspx"));

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