Ir para conteúdo

Arquivado

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

Criamix

[Resolvido] Isapi Rewrite 3

Recommended Posts

Boa tarde pessoal.

 

Estou com uma pequena dúvida sobre as "URL's amigáveis" usando o Isapi Rewrite 3 e mesmo depois de muito procurar, não consegui resolver.

 

VAMOS LÁ: preciso deixar as url's do site de um cliente meu mais "amigáveis", e para isso estou usando o Isapi Rewrite 3, que está instalado no servidor (Locaweb). Li o wiki disponibilizado pela própria Locaweb, acessei o site da Isapi e pesquisei no Google. Já consegui retirar o .ASP.

 

O QUE NÃO CONSEGUI FAZER: tentei de todos os jeitos, vasculhei os tutoriais da Isapi e alguns que achei no Google, mas nenhum deu certo. Preciso retirar também a ? (interrogação) e o & (e-comercial) e substitui-los por / (barra). Além disso, pretendo mexer um pouco em outros itens da url também, como as variáveis e nomes de arquivos. Seria assim:

 

Preciso que isso: www.site.com.br/noticias_consulta?id=17 (antes aparecia o .ASP depois do noticias_consulta, mas já tirei a extensão)

 

Se transforme nisso: www.site.com.br/noticias/17 (ou algo parecido)

 

O MEU CÓDIGO ATUAL:

RewriteEngine on

RewriteRule ^([^?]+)\.asp$ $1 [NC,R=301,L]

RewriteCond %{REQUEST_FILENAME}.asp -f
RewriteRule (.*) $1.asp

MINHA DÚVIDA: o que preciso inserir no código acima para que as urls que citei sofram a mudança esperada?

 

Por favor pessoal. Agradeço muito se puderem me ajudar. Posto apenas dúvidas que realmente não consegui resolver depois de muita pesquisa. Logicamente ainda não estudei Expressões Regulares, o que ajudaria muito, mas esta função é urgente para mim e preciso contar com aqueles que já possuem conhecimento mais avançado neste assunto.

 

Grande abraço a todos e obrigado desde já!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Colega, boa noite.

 

Sei que a sua intenção foi das melhores, mas peço que leia o meu texto todo, pois nele deixo claro que pesquisei muito antes de cadastrar este post, incluindo o próprio wiki da Locaweb, o Google e o site da Isapi. O próprio código que estou utilizando foi extraído do wiki fornecido pela Locaweb. Além dele, no entanto, cheguei a testar vários outros exemplos que encontrei em outros sites, mas nenhum funcionou.

 

Portanto, o que eu peço é que vocês me ajudem a completar o código que postei para que a função que desejo funcione corretamente, ok?

 

Muito obrigado novamente.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça o seguinte:

RewriteRule ^/produto/([0-9]+)(/[a-zA-Z0-9_-]+)?(.html)?(&co_parceiro=)?([0-9]+)?$ /detalhes_produto.asp?co_prod=$1&co_parceiro=$5

Que resultaria no seguinte:

/produto/5678/nome-do-produto.html&co_parceiro=1234

Util quando em sites de anunciantes envia um ID para identificação

 

fonte: http://forum.imasters.com.br/index.php?/topic/293277-url-rewrite-com-variavel/

Compartilhar este post


Link para o post
Compartilhar em outros sites

ja tentou entrar em contato com o host ??? (Locaweb).

Compartilhar este post


Link para o post
Compartilhar em outros sites

Colega, a Locaweb não dá suporte à programação. Nem adianta entrar em contato...

 

ja tentou entrar em contato com o host ??? (Locaweb).

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ted, usei o seu código, mas não aconteceu nada.

 

Fiz mais algumas pesquisas e consegui mais alguns exemplos, mas nada funcionou.

 

Vejam como ficou a minha última tentativa:

 

RewriteEngine on

RewriteRule ^([^?]+)\.asp$ $1 [NC,R=301,L]

RewriteCond %{REQUEST_FILENAME}.asp -f
RewriteRule (.*) $1.asp

RewriteRule ^/noticias_consulta\/([0-9]+)\.html$ /noticias_consulta.asp?id=$1

A última linha do código (acima) é onde tento alterar uma url específica.

 

Preciso que isso: www.site.com.br/noticias_consulta.asp?id=17

 

Se transforme nisso: www.site.com.br/noticias/17

 

Continuo contando com a colaboração de todos os que puderem ajudar!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigo,

 

Também tenho pesquisado muito sobre isso e vejo que esse tem sido um problema muito comum na locaweb.

 

Estou tentando usar esse componente, porém sem sucesso. Até agora além de tirar o .ASP consegui bloquear o download do .htaccess.

 

Mas durante os testes encontrei um problema. Ao usar o código, não consegui logar no gerenciador de conteúdo do site que está em um subdiretório. Existe a possibilidade de dizer que o mesmo não seja interpretado pelo ISAPI Rewrite?

 

O meu código está assim:

 

RewriteEngine On
RewriteCompatibility2 On
RepeatLimit 200
RewriteBase /
# unsupported directive: [ISAPI_Rewrite]

# Evita o download do arquivo .htaccess via browser
RewriteRule ^/.htaccess$ /erros/404.asp

#Redirect extension requests to avoid duplicate content
RewriteRule ^([^?]+)\.asp$ $1 [NC,R=301,L]

#Internally add extensions to request
RewriteCond %{REQUEST_FILENAME}.asp -f
RewriteRule (.*) $1.asp

RewriteRule  ^/produtos/([a-z,0-9,_-]+)-([0-9]+).html$ /produtos_detalhe.asp?ID=$1 [QSA]

Compartilhar este post


Link para o post
Compartilhar em outros sites

Colega, pois é, este componente não tem muitas fontes de pesquisa, pois os servidores com Windows 2008 só rodam o Isapi Rewrite 3, e a maioria dos tutoriais referem-se apenas à versão 2. Em relação ao seu problema, eu também encontrei esta mesma dificuldade, mas depois de muito quebrar a cabeça e quase desistir do Isapi, eis que a solução mais simples resolveu a questão do login. No meu caso, eu uso o SSL para logar, e bastou tirar o .ASP da url no campo ACTION do FORM que deu certo.

 

Era assim:

 

<form method="post" name="login" id="login" action="https://ssl123.websiteseguro.com/site/admin/login.asp?action=login"></form>

 

Ficou assim:

 

<form method="post" name="login" id="login" action="https://ssl123.websiteseguro.com/site/admin/login?action=login"></form>

 

E foi isso. Tente no seu caso e, se não der certo, poste o código do seu login que tento te ajudar. E se conseguir mais alguma evolução, posta por aqui também, ok?

 

Um abraço!

 

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

 

Olá amigo,

 

Também tenho pesquisado muito sobre isso e vejo que esse tem sido um problema muito comum na locaweb.

 

Estou tentando usar esse componente, porém sem sucesso. Até agora além de tirar o .ASP consegui bloquear o download do .htaccess.

 

Mas durante os testes encontrei um problema. Ao usar o código, não consegui logar no gerenciador de conteúdo do site que está em um subdiretório. Existe a possibilidade de dizer que o mesmo não seja interpretado pelo ISAPI Rewrite?

 

O meu código está assim:

 

RewriteEngine On
RewriteCompatibility2 On
RepeatLimit 200
RewriteBase /
# unsupported directive: [ISAPI_Rewrite]

# Evita o download do arquivo .htaccess via browser
RewriteRule ^/.htaccess$ /erros/404.asp

#Redirect extension requests to avoid duplicate content
RewriteRule ^([^?]+)\.asp$ $1 [NC,R=301,L]

#Internally add extensions to request
RewriteCond %{REQUEST_FILENAME}.asp -f
RewriteRule (.*) $1.asp

RewriteRule  ^/produtos/([a-z,0-9,_-]+)-([0-9]+).html$ /produtos_detalhe.asp?ID=$1 [QSA]

Compartilhar este post


Link para o post
Compartilhar em outros sites

Colega, pois é, este componente não tem muitas fontes de pesquisa, pois os servidores com Windows 2008 só rodam o Isapi Rewrite 3, e a maioria dos tutoriais referem-se apenas à versão 2. Em relação ao seu problema, eu também encontrei esta mesma dificuldade, mas depois de muito quebrar a cabeça e quase desistir do Isapi, eis que a solução mais simples resolveu a questão do login. No meu caso, eu uso o SSL para logar, e bastou tirar o .ASP da url no campo ACTION do FORM que deu certo.

 

Era assim:

 

<form method="post" name="login" id="login" action="https://ssl123.websiteseguro.com/site/admin/login.asp?action=login"></form>

 

Ficou assim:

 

<form method="post" name="login" id="login" action="https://ssl123.websiteseguro.com/site/admin/login?action=login"></form>

 

E foi isso. Tente no seu caso e, se não der certo, poste o código do seu login que tento te ajudar. E se conseguir mais alguma evolução, posta por aqui também, ok?

 

Um abraço!

 

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

 

 

Olá amigo,

 

Também tenho pesquisado muito sobre isso e vejo que esse tem sido um problema muito comum na locaweb.

 

Estou tentando usar esse componente, porém sem sucesso. Até agora além de tirar o .ASP consegui bloquear o download do .htaccess.

 

Mas durante os testes encontrei um problema. Ao usar o código, não consegui logar no gerenciador de conteúdo do site que está em um subdiretório. Existe a possibilidade de dizer que o mesmo não seja interpretado pelo ISAPI Rewrite?

 

O meu código está assim:

 

RewriteEngine On
RewriteCompatibility2 On
RepeatLimit 200
RewriteBase /
# unsupported directive: [ISAPI_Rewrite]

# Evita o download do arquivo .htaccess via browser
RewriteRule ^/.htaccess$ /erros/404.asp

#Redirect extension requests to avoid duplicate content
RewriteRule ^([^?]+)\.asp$ $1 [NC,R=301,L]

#Internally add extensions to request
RewriteCond %{REQUEST_FILENAME}.asp -f
RewriteRule (.*) $1.asp

RewriteRule  ^/produtos/([a-z,0-9,_-]+)-([0-9]+).html$ /produtos_detalhe.asp?ID=$1 [QSA]

Compartilhar este post


Link para o post
Compartilhar em outros sites

iai pessoal nenhuma solução ainda? estou com o mesmo problema de vcs, procuro, procuro e nao acho nada que funcione.

 

minha URL é assim: http://www.meusite.com.br/produtos.asp?lang=pt_BR&tipo_busca=subcategoria&codigo_categoria=1&codigo_subcategoria=13

 

e gostaria que ela aparecesse assim: http://www.meusite.com.br/produtos/pt/estampas/bebe

 

a regra que tentei foi essa abaixo.

RewriteRule ^/produtos/([a-z,0-9,_-]+)/([0-9]+)/([0-9]+)$ /produtos.asp?lang=$1&tipo_busca=subcategoria&codigo_categoria=$2&codigo_subcategoria=$3 [QSA]

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nada ainda! Não consegui fazer funcionar de jeito nenhum. Torço para que algum colega que saiba possa nos ajudar.

 

Um abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente assim

 

RewriteEngine onRewriteRule noticias_consulta/id/(.*)/ noticias_consulta?id=$1RewriteRule noticias_consulta/id/(.*) noticias_consulta?id=$1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pow será que alguem pode ajudar?

Estou usando o seguinte código abaixo e ele nao funciona. Está rodando em servidor windows da locaweb.

Estou salvando o seguinte código na pasta /web/ do servidor

 

Para garantir salvei o codigo como .htaccess e como httpd.ini e joguei na pasta /web/

 

RewriteEngine on
RewriteCompatibility2 On
RepeatLimit 200
RewriteBase
RewriteRule ^/Noticia/id/([0-9]+)?.html /Noticia.asp?id=$3

Quando tento acessar o url www.site.com/noticia/id/1.html a pagina nao é encontrada

alguem pode dar uma dica?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Velho tenta assim

 

RewriteEngine onRewriteRule noticia/id/(.*)/ noticia.asp?id=$1RewriteRule noticia/id/(.*) noticia.asp?id=$1
vai ter que acessar assim

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

O codigo abaixo funcionou finlamente

 

RewriteEngine on

#Redirect extension requests to avoid duplicate content
RewriteRule ^([^?]+)\.asp$ $1 [NC,R=301,L]

#Internally add extensions to request
RewriteCond %{REQUEST_FILENAME}.asp -f
RewriteRule (.*) $1.asp

esse codigo faz com que todas as páginas asp senha acessadas sem o .asp, exemplo o link www.meusite.com/pagina.asp via ser acessado apenas por www.meusite.com/pagina

 

O problema é que isso alterou todos os links da loja virtual e deu erro nos formularios entao eu retirei o arquivo. Tomei o mair susto foi que depois de remocer o codigo .htaccess a configuração continuou por muito tempo. Depois de horas voltou o normal. O atendente da locaweb disse que pra votlar ao normal somente quando o servidor reiniciar. Existe uma forma de retirar a função sem ter que esperar o servidor reiniciar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado , sua dica funcionou

#Dentro da pasta /web/ no servidor locaweb#Arquivo .htaccessRewriteEngine onRewriteRule noticia/id/(.*)/ noticia.asp?id=$1RewriteRule noticia/id/(.*) noticia.asp?id=$1

 

 

Como posso passar mais um valor alem do id? exemplo noticia.asp?id=1&data=20122009?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uma dica que acho importante informar é que ao usar os URLs Amigáveis, caso você perceba que sua configuração de imagens e arquivos CSS seja perdida, modifique os urls de cada imagens e arquivos da seguinte forma:

 

DE

<img src="imagens/logomarca.gif">

PARA

<img src="/imagens/logomarca.gif">

 

Testei aqui e funcionou.

Pessoal, está correto? é assim mesmo que resolvemos esse problema?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para transformar isso

 

http://www.site.com.br/noticia.asp?id=1&data=20122009
nisso

 

http://www.site.com.br/noticia/id/1/data/20122009/
Faça isso

 

RewriteEngine onRewriteRule noticia/id/(.*)/data/(.*)/ noticia.asp?id=$1&data=$2RewriteRule noticia/id/(.*)/data/(.*) noticia.asp?id=$1&data=$2
Mais no caso como a url utiliza apenas parametros de ids eu aconselho tu a fazer assim

 

RewriteEngine onRewriteRule noticia-id-(.*)-data-(.*).htm$ noticia.asp?id=$1&data=$2
O resultado seria este

 

http://www.site.com.br/noticia-id-1-data-20122009.htm
Em relação ao seu último post, tem que utilizar os caminhos deste jeito

 

<img src="/imagens/logomarca.gif" />
Não só quando esta se usando Rewrite não, tem que se usar sempre cara... desta forma tu não se perderá na aplicação, eu sempre utilizei desta forma é muito mais prático.

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal, vi toda a movimentação de vocês aqui no tópico e agradeço a todos os que estão colaborando.Eu testei todas as sugestões de vocês até aqui, que são muito boas, mas nada funcionou. Eu gostaria que o .asp saísse de todas as urls e, na página de consulta das notícias, gostaria de tratar a url dela.Seria assim:1) todas as páginas sem o .asp (isto eu já consegui)2) tratar as urls da página de consulta de notícias, assim:atualmente é assim:

noticias_consulta.asp?id=20

gostaria que ficasse assim:

noticias_consulta/id/20

ou assim:

noticias/20

Testei de diversas formas e, no final, o meu código ficou assim:
RewriteEngine onRewriteRule ^([^?]+).asp$ $1 [NC,R=301,L]RewriteCond %{REQUEST_FILENAME}.asp -fRewriteRule (.*) $1.aspRewriteRule noticias_consulta/id/(.*)/ noticias_consulta.asp?id=$1RewriteRule noticias_consulta/id/(.*) noticias_consulta.asp?id=$1
Este código aí de cima tira o .asp, mas na página noticias_consulta, ele não faz nada.Para quem quiser ver o site, é este: www.yrt.com.brObrigado a todos novamente!

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.