Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

DigoDev

Isapi Rewrite 3 em aplicação ASP.NET

Recommended Posts

Olá,

 

Tenho uma aplicação em ASP.NET com C# (Framework 3.5) onde preciso utilizar urls amigáveis com ISAPI Rewrite 3.

O Problema é que na web em si é difícil achar exemplos de uma aplicação em asp.net utilizando o rewrite,

A wiki da locaweb é uma dos piores que já vi, acaba não explicando nada e só nos deixa com mais dúvidas.

Se alguém tiver um exemplo de aplicação asp.net que utilize o ISAPI Rewrite 3 (.htaccess) e puder me dar um exemplo de

como utilizar (até agora não consegui fazer o .htaccess funfar de jeito nenhum) seria bom, mesmo que fosse um exemplo bem simples.

 

Vlw.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Segue exemplo simples e facil?


# Helicon ISAPI_Rewrite configuration file
# Version 3.1.0.72

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f


#Resultado /Content/A-Empresa/          /Content/A-Empresa.aspx
RewriteRule ^Content/([A-Za-z0-9\-]+)/?$ /Content/$1.aspx


#Resultado /Notat/15/Primeira-Nota-Do-Site/          /Content/Nota.aspx?id=15
RewriteRule ^Nota/([0-9\-]+)/([A-Za-z0-9\-]+)/?$ /Content/Nota.aspx?id=$1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Segue exemplo simples e facil?


# Helicon ISAPI_Rewrite configuration file
# Version 3.1.0.72

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f


#Resultado /Content/A-Empresa/          /Content/A-Empresa.aspx
RewriteRule ^Content/([A-Za-z0-9\-]+)/?$ /Content/$1.aspx


#Resultado /Notat/15/Primeira-Nota-Do-Site/          /Content/Nota.aspx?id=15
RewriteRule ^Nota/([0-9\-]+)/([A-Za-z0-9\-]+)/?$ /Content/Nota.aspx?id=$1

 

Ivan não entendi direito,

Você está utilizando esse código no .htaccess correto?

Existe alguma configuração a mais que você esteja fazendo?

No meu caso por exemplo eu tenho 2 web forms, onde um chama o outro

por uma query string que fica mais ou menos assim: /WebSite1/Exemplo1.aspx?id=1&nome=teste&email=teste

E eu queria que ele ficasse /WebSite1/exemplo-de-url-amigavel.

Tem como fazer assim?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso esse codigo que postei é como deve ficar o .htaccess, lembrando que tem que esta habilitado no componente junto a hospedagem.

no seu exemplo ficar assim

 

# Helicon ISAPI_Rewrite configuration file
# Version 3.1.0.72

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f

#Exemplo de URL amigável: /WebSite1/1/nome-do-cara/email-do-cara/          /WebSite1/Exemplo1.aspx?id=1&nome=teste&email=teste
RewriteRule ^WebSite1/([0-9\-]+)/([A-Za-z0-9\-]+)/([A-Za-z0-9\-]+)/?$ /WebSite1/Exemplo1.aspx?id=$1&nome=$2&email=$3

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso esse codigo que postei é como deve ficar o .htaccess, lembrando que tem que esta habilitado no componente junto a hospedagem.

no seu exemplo ficar assim

 

# Helicon ISAPI_Rewrite configuration file
# Version 3.1.0.72

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f

#Exemplo de URL amigável: /WebSite1/1/nome-do-cara/email-do-cara/          /WebSite1/Exemplo1.aspx?id=1&nome=teste&email=teste
RewriteRule ^WebSite1/([0-9\-]+)/([A-Za-z0-9\-]+)/([A-Za-z0-9\-]+)/?$ /WebSite1/Exemplo1.aspx?id=$1&nome=$2&email=$3

 

Ivan, mais uma dúvida

Existe alguma configuração a mais que eu precise colocar no web.config?

To tentando rodar a aplicação no IIS e não tá funfando a url amigável,

baixei, instalei e habilitei o Isapi Rewriter conforme o próprio site da Helicon,

mesmo assim ainda não consegui fazer funcionar, poderia me dar mais algumas dicas de como fazer funfar?

 

Vlw.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já desinstalei e instalei o ISAPI Rewrite da minha maquina,

Mas nada funcionou ainda,

No regex Test do próprio Isapi ele dá a expressão como correta,

e se eu digito lá no test string WebSite1/1/teste/teste ele dá a Result String certa.

Só não entendo o por que de na minha aplicação ele não estar rodando.

 

Se ajuda segue o código da aplicação:

 

Página Default.aspx - código do botão que chama o outro web form:
   protected void Button1_Click(object sender, EventArgs e)
   {        
       string url;
       url = "Exemplo1.aspx?id=1&nome="+TextBox1.Text + "&email=" +TextBox2.Text;
       Response.Redirect(url);

   }

Página Exemplo1.aspx - código do pageLoad
protected void Page_Load(object sender, EventArgs e)
   {        
       Label3.Text = Request.QueryString["nome"];
       Label4.Text = Request.QueryString["email"];
   }

 

Os labels da Exemplo1 trazem corretamente os dados passados pela Default,

Mas a url está assim: http://localhost/WebSite1/Exemplo1.aspx?id=1&nome=teste&email=teste

 

Alguém pode me ajudar a resolver isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quando você roda a aplicação no IIS, com a URL WebSite1/1/teste/teste da o que:?

 

Dá a mensagem de erro "A página não foi localizada"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vê no seu IIS, em Filtros ISAPI se ele esta instalado.

isapi.jpg

 

Então, to configurando no IIS 5.1 tem algum problema?

iisisapi.png

Nele diz que está instalado o filtro isapi

Compartilhar este post


Link para o post
Compartilhar em outros sites

É já não sei mais o que fazer.

O regexTest do ISAPI Rewriter 3 dá a expressão regular como correta.

Até traz o resultado corretamente, o problema é na aplicação,

Não funciona de jeito nenhum essas urls amigáveis...

O pior é que a Locaweb só dá suporte para ISAPI Rewrite então

preciso fazer por ele mesmo...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.