Ir para conteúdo

POWERED BY:

Arquivado

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

augustoclaro

[Resolvido] ISAPI Rewrite 3

Recommended Posts

Olá. Eu fiz um site: www.augustoclaro.com.br

 

e eu queria saber como eu uso o isapi rewrite para ao invés de /post.asp?id=11 por exemplo, aparecesse /posts/validacao-de-formularios-com-javascirpt/

 

e na busca aparecesse /busca/string-de-busca/

 

 

Agradeço a ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse faq da locaweb é um dos piores que eu já vi na web, se quiser aprender mesmo sugiro procurar outros tutos, pois esse ai já ta manjado.

 

Você ou terá que encaixar o id na nova url ou terá que fazer o id a partir do título.

 

Se quiser utilizar o id numérico faça assim

 

a url sem rewrite é /post.asp?id=11 com rewrite ficara assim /busca/11/validacao-de-formularios-com-javascirpt

 

O code rewrite sera esse

 

RewriteRule busca/([0-9]+)/ /post.asp?id=$1
RewriteRule busca/([0-9]+) /post.asp?id=$1

O ([0-9]+) server para mostrar ao operador rewrite que só será permitido números lá, caso o usuário tente colocar letrar não é permitido.

 

Dai no code asp você tera que montar o link já com o id e já com o título tratado... retirando as acentuações, colocando - nos espaços e colocando as palavras em minúsculo.

 

A url terá que ficar assim

 

www.seusite.com.br/busca/1/titulo-tratado-da-notícia

 

Para formatar o título afim de se encaixar como url utilize essa função no título e jogue o resultado na url.

 

Function FormataUrl(ByVal Texto)
	FormataUrl = Replace(Replace(LCase(Texto), "  ", " "), "\'", "")
	FormataUrl = Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(FormataUrl, " ", "-"), "á", "a"), "é", "e"), "í", "i"), "ó", "o"), "ú", "u"), "ã", "a"), "â", "a"), "à", "a"), "ê", "e"), "ô", "o"), "ç", "c"), "/", ""), "'", ""), """", ""), "[", ""), "]", ""), "&", "-"), "#", ""), "+", ""), "{", ""), "}", ""), "ù", "u"), "ò", "o"), ".", ""), "?", ""), "!", ""), ":", ""), "´", ""), "`", ""), "õ", "o"), "\", "")
	FormataUrl = Replace(Replace(Replace(FormataUrl, "û", "u"), "¢", "c"), "¡", "i")
	FormataUrl = Replace(Replace(Replace(FormataUrl, "£", "e"), "¤", ""), "¥", "y")
	FormataUrl = Replace(Replace(Replace(FormataUrl, "¦", ""), "ª", "a"), "æ", "ae")
	FormataUrl = Replace(Replace(Replace(Replace(FormataUrl, "ë", "e"), "ì", "ì"), "ð", "o"), "Ä", "a")
	FormataUrl = Replace(Replace(Replace(Replace(FormataUrl, "ñ", "n"), "ø", "o"), "ý", "y"), "  ", " ")
	FormataUrl = Replace(Replace(Replace(Replace(FormataUrl, "þ", "p"), "€", "e"), "ÿ", "y"), "²", "z")
	FormataUrl = Replace(FormataUrl, "%", "")
	FormataUrl = Replace(FormataUrl, "---", "-")
End Function

No outro exemplo se você não quiser colocar o id numero terá que criar uma tabela no seu bd, e quando for salvo o titulo... tera que fazer um tratamento, tirando acentuação, caracteres especiais, e espaços colocando -, e além disso todo titulo terá que ser único... não podendo repetir, com isso terá que fazer uma verificação no cadastro para que problemas futuros não aconteçam.

 

O code rewrite será o mesmo, porém terá que mudar o esquema que pega o id e identifica qual é a notícia... para ai pegar essa nova tabela que vai conter uma url rewrite do tipo.... teste-patrique-123 será ela que identificara qual notícia apresentar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

nossa patrique vce misturou tudo hehe

 

é uma ocisa diferente pra busca, e nãoo precisa do /11/

 

só quero assim:

 

de www.augustoclaro.com.br/posts.asp?id=11 vá para http://www.augustoclaro.com.br/posts/validacao-de-formularios-com-javascirpt/

 

e em outro caso, na busca

 

vá de www.augustoclaro.com.br/busca.asp?s=string+de+busca para http://www.augustoclaro.com.br/busca/string-de-busca/

 

e caso alguém chegasse e digitasse http://www.augustoclaro.com.br/busca/string-de-busca/ também fosse redirecionado para www.augustoclaro.com.br/busca.asp?s=string+de+busca

 

eu boiei em tudo que vce me falou patrique, isso é muito confuso pra mim :/

 

Obrigado pela atenção!

Compartilhar este post


Link para o post
Compartilhar em outros sites

kkk reveja, pois é você quem esta se confundindo.

 

Pois testei aqui com a url que você passou e como você quer que fique e deu certo da maneira que te passei.

 

Mas..... vamos lá, vamos fazer primeiramente um teste para ai depois você aplica.

 

Crie uma página chamada teste.asp nesta página coloque o seguinte code...

 

<%
id = request.querystring("id")
Response.Write("O id chamado é: "& id &"")
%>

Agora crie um outra página chamada teste-link.asp nesta página coloque o seguinte code...

 

<%
Function FormataUrl(ByVal Texto)
	FormataUrl = Replace(Replace(LCase(Texto), "  ", " "), "\'", "")
	FormataUrl = Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(FormataUrl, " ", "-"), "á", "a"), "é", "e"), "í", "i"), "ó", "o"), "ú", "u"), "ã", "a"), "â", "a"), "à", "a"), "ê", "e"), "ô", "o"), "ç", "c"), "/", ""), "'", ""), """", ""), "[", ""), "]", ""), "&", "-"), "#", ""), "+", ""), "{", ""), "}", ""), "ù", "u"), "ò", "o"), ".", ""), "?", ""), "!", ""), ":", ""), "´", ""), "`", ""), "õ", "o"), "\", "")
	FormataUrl = Replace(Replace(Replace(FormataUrl, "û", "u"), "¢", "c"), "¡", "i")
	FormataUrl = Replace(Replace(Replace(FormataUrl, "£", "e"), "¤", ""), "¥", "y")
	FormataUrl = Replace(Replace(Replace(FormataUrl, "¦", ""), "ª", "a"), "æ", "ae")
	FormataUrl = Replace(Replace(Replace(Replace(FormataUrl, "ë", "e"), "ì", "ì"), "ð", "o"), "Ä", "a")
	FormataUrl = Replace(Replace(Replace(Replace(FormataUrl, "ñ", "n"), "ø", "o"), "ý", "y"), "  ", " ")
	FormataUrl = Replace(Replace(Replace(Replace(FormataUrl, "þ", "p"), "€", "e"), "ÿ", "y"), "²", "z")
	FormataUrl = Replace(FormataUrl, "%", "")
	FormataUrl = Replace(FormataUrl, "---", "-")
End Function

idnoticia = 1
titulonoticia = "Patrique é o cara mais gostoso deste fórum"

Response.Write("<a href=""/busca/"& idnoticia &"/"& FormataUrl(titulonoticia) &""">"& titulonoticia &"</a>")
%>

Agora vai no arquivo de configuração do rewrite e coloque o seguinte code....

 

Apague tudo o que estiver lá e coloque este....

 

RewriteEngine on
RewriteRule busca/([0-9]+)/ /teste.asp?id=$1
RewriteRule busca/([0-9]+) /teste.asp?id=$1

Pronto, faça o teste e veja que esta funcionando, acabei de fazer aqui este code... depois testei e deu tudo certo.... modifique o valor que esta na variável idnoticia do code da pagina teste-link.asp e atualize... clique no, link novamente....

 

Fiz deste maneira para ver se encaixa na sua cachola, depois dessa se tu não aprender... PEDE PRA SAIR SEU FANFARRÃO! rsrsrsrsrsrs

 

:mellow:

 

Vixxi... to muito com esse tropa de elite na mente rsrsrs.

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara,vce misturou a busca com a noticia, percebe?

 

o que eu quero são duas coisas diferentes.

 

vamos esquecer a busca.

 

eu ainda não entendi :/

 

to boiando geral

 

tem coisa q eu n entendo e pronto haha

 

eu não quero busca/id/nome-do-post

 

eu quero /post/nome-do-post e busca/string-de-busca

duas coisas totalmente diferentes. Uma coisa é pra busca, e a outra é pros posts.

 

Sakou? =D

 

EU DISITO CAPITÃO!

Compartilhar este post


Link para o post
Compartilhar em outros sites

existem ótimos tópicosm sobre o assunto, faça uma pesquisa no fórum, pode te ajudar...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Velho, você que misturou, olhe no seu primeiro post...

 

eu queria saber como eu uso o isapi rewrite para ao invés de /post.asp?id=11 por exemplo, aparecesse /posts/validacao-de-formularios-com-javascirpt/

Depois no seu segundo você postou

 

só quero assim:

 

de www.augustoclaro.com.br/posts.asp?id=11 vá para http://www.augustocl...com-javascirpt/

E foi isso que te passei, em relação a busca você terá que fazer ela normal... cria uma pasta chamada buscaseila nela coloque um arquivo chamado index.asp neste arquivo monte uma função que recupere a querystring "q" e faça a função de busca.... dai depois basta buscar... a url ficara da seguinte maneira....

 

www.seusite.com.br/buscaseila/?q=doidera

 

No caso da busca tem que ser assim, uma vez que entra valores com acentuação, espaço e etc.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá pessoal, não sei se posso fazer minha pergunta neste tópico, caso não possa, eu abro outro.

 

Patrique, fiz o exemplo que você deu, mas não tive o resultado esperado rsrsrs

 

O código que estou usando é esse:

 

teste-link.asp

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<%
Function FormataUrl(ByVal Texto)
        FormataUrl = Replace(Replace(LCase(Texto), "  ", " "), "\'", "")
        FormataUrl = Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(FormataUrl, " ", "-"), "á", "a"), "é", "e"), "í", "i"), "ó", "o"), "ú", "u"), "ã", "a"), "â", "a"), "à", "a"), "ê", "e"), "ô", "o"), "ç", "c"), "/", ""), "'", ""), """", ""), "[", ""), "]", ""), "&", "-"), "#", ""), "+", ""), "{", ""), "}", ""), "ù", "u"), "ò", "o"), ".", ""), "?", ""), "!", ""), ":", ""), "´", ""), "`", ""), "õ", "o"), "\", "")
        FormataUrl = Replace(Replace(Replace(FormataUrl, "û", "u"), "¢", "c"), "¡", "i")
        FormataUrl = Replace(Replace(Replace(FormataUrl, "£", "e"), "¤", ""), "¥", "y")
        FormataUrl = Replace(Replace(Replace(FormataUrl, "¦", ""), "ª", "a"), "æ", "ae")
        FormataUrl = Replace(Replace(Replace(Replace(FormataUrl, "ë", "e"), "ì", "ì"), "ð", "o"), "Ä", "a")
        FormataUrl = Replace(Replace(Replace(Replace(FormataUrl, "ñ", "n"), "ø", "o"), "ý", "y"), "  ", " ")
        FormataUrl = Replace(Replace(Replace(Replace(FormataUrl, "þ", "p"), "€", "e"), "ÿ", "y"), "²", "z")
        FormataUrl = Replace(FormataUrl, "%", "")
        FormataUrl = Replace(FormataUrl, "---", "-")
End Function

idnoticia = 1
titulonoticia = "Patrique é o cara mais gostoso deste fórum"

Response.Write("<a href="& idnoticia &"/"& FormataUrl(titulonoticia) &">"& titulonoticia &"</a>")
%>
</body>
</html>

 

teste.asp

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<%
id = request.querystring("id")
Response.Write("O id chamado é: "& id &"")
%>
</body>
</html>

.htaccess

RewriteEngine on
RewriteRule ([0-9]+)/ /teste.asp?id=$1
RewriteRule ([0-9]+) /teste.asp?id=$1

estou fazendo algo errado??

 

coloquei em teste para vcs verem aqui

 

brigadão!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oxee...

 

Aqui não funciono..

 

Mas isso aí funciona com base no id, ou seja, se eu colocar /1/arroz-com-feijao vai pro id 1 do msmo jeito...

 

eu queria tipo igual esse do fórum.

 

/posts/id-nome-do-post

 

como faço? :P

Compartilhar este post


Link para o post
Compartilhar em outros sites

você esta mais enrolado que linha de pipa, sugiro que faça da forma que estou passando, teste e vera que dara certo, so depois tente fazer as modificações, entenda primeiro o code, depois faça as modificações.

 

Desta forma que esta querendo fazer seu rewrite tera que ser assim...

 

RewriteRule posts/([0-9]+)/ /rewrite/teste.asp?id=$1
RewriteRule posts/([0-9]+) /rewrite/teste.asp?id=$1

Antes que falem que não da certo, veja os demos abaixo que eu coloquei no server...

 

http://www.adresende.com.br/rewrite/teste-link.asp

http://www.adresende.com.br/posts/1-patrique-e-o-cara-mais-gostoso-deste-forum

http://www.adresende.com.br/posts/2-teste-forum-imasters

Compartilhar este post


Link para o post
Compartilhar em outros sites

Certo...

 

Antes de tudo, abra seu rewrite e insira o seguinte code...

 

RewriteRule posts/([0-9]+)/ /rewrite/teste.asp?id=$1
RewriteRule posts/([0-9]+) /rewrite/teste.asp?id=$1

Salve e jogue no servidor...

 

Agora crie uma pasta na raiz do seu servidor chamada rewrite

 

Dentro desta pasta crie 2 arquivos....

 

o primeiro o teste.asp nele coloque o seguinte code...

 

<%
id = request.querystring("id")
Response.Write("O id chamado é: "& id &"")
%>

Nessa mesma pasta, crie o segundo arquivo chamado teste-link.asp nele coloque o seguinte code...

<%
Function FormataUrl(ByVal Texto)
        FormataUrl = Replace(Replace(LCase(Texto), "  ", " "), "\'", "")
        FormataUrl = Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(FormataUrl, " ", "-"), "á", "a"), "é", "e"), "í", "i"), "ó", "o"), "ú", "u"), "ã", "a"), "â", "a"), "à", "a"), "ê", "e"), "ô", "o"), "ç", "c"), "/", ""), "'", ""), """", ""), "[", ""), "]", ""), "&", "-"), "#", ""), "+", ""), "{", ""), "}", ""), "ù", "u"), "ò", "o"), ".", ""), "?", ""), "!", ""), ":", ""), "´", ""), "`", ""), "õ", "o"), "\", "")
        FormataUrl = Replace(Replace(Replace(FormataUrl, "û", "u"), "¢", "c"), "¡", "i")
        FormataUrl = Replace(Replace(Replace(FormataUrl, "£", "e"), "¤", ""), "¥", "y")
        FormataUrl = Replace(Replace(Replace(FormataUrl, "¦", ""), "ª", "a"), "æ", "ae")
        FormataUrl = Replace(Replace(Replace(Replace(FormataUrl, "ë", "e"), "ì", "ì"), "ð", "o"), "Ä", "a")
        FormataUrl = Replace(Replace(Replace(Replace(FormataUrl, "ñ", "n"), "ø", "o"), "ý", "y"), "  ", " ")
        FormataUrl = Replace(Replace(Replace(Replace(FormataUrl, "þ", "p"), "€", "e"), "ÿ", "y"), "²", "z")
        FormataUrl = Replace(FormataUrl, "%", "")
        FormataUrl = Replace(FormataUrl, "---", "-")
End Function

idnoticia = 1
titulonoticia = "Patrique é o cara mais gostoso deste fórum"

Response.Write("<a href=""/posts/"& idnoticia &"-"& FormataUrl(titulonoticia) &""">"& titulonoticia &"</a>")
%>

Pronto... com os arquivos criado, faça o teste acessando por

 

www.augustoclaro.com.br/posts/1-seila-oque

 

Faça exatamente da maneira que te passei, que não dara erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

você mandou habilitar o suporte ao rewrite pelo servidor? tem uns que é necessário mandar habilitar.

 

Porém uma pergunta... você possui um arquivo chamado .htaccess na raiz do seu servidor, e é nele que esta colocando o code rewrite?

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.