Ir para conteúdo

POWERED BY:

Arquivado

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

Billie_Joe

pra montar .htaccess em mod_rewrite

Recommended Posts

Boa tarde galera!

 

 

estou envolvido num projeto de reprogramação de um site e o "patrão" pediu pra ser feito utilizando as recomendações que um consultor de SEO fez, e uma delas é reescrever os links para padrão "amigável".

 

Nunca utilizei isso mas li um pouco a respeito e já consegui entender o básico da coisa. Porém uma dúvida persiste e deve ser até boba, porém não consigo entender (sou meio tapado nisso.rs.)

 

O arquivo .htaccess está no root do site. Costumo deixar todas as páginas com script na raiz mesmo então acesso:

 

www.site.com/index.php

www.site.com/cadastro.php

www.site.com/busca.php

 

e por ai vai.

 

O que não entendi é como eu posso criar as regras no arquivo .htaccess pra ele saber qual página eu quero q ele reescreva naquele momento. Não sei se fui claro mas quero que em um único .htaccess (na raiz) contenha as regras pra interpretar as páginas (exemplos)

 

www.site.com/busca/termo-a-ser-procurado

www.site.com/produto/id-do-produto

www.site.com/servico/id-do-servico

 

Acho q consegui explicar hhehe Qq ajuda é muito bem vinda ok?

 

obrigado a todos!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, para cada link você fará uma regra para ele, com links dinâmicos veja alguns exemplo:

 

RewriteRule ^produto/([0-9]+)/?$ produto.php?id=$1

O que tem que saber basicamente para o caso que você especificou é expressões regulares.

 

Transcrevendo o primeiro bloco (^produto/([0-9]+)/?$) você obterá o segundo, que é o que realmente será interpretado mas não exibido.

 

A princípio, você precisa verificar a disponibilidade do mod-rewrite no seu servidor e criar este arquivo .htaccess e começar a definir as regras.

 

Não sei se fui claro, qualquer coisa pergunte ai. =]

 

[]'s http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, o mod_rewrite já está habilidado e funcionando. O que eu não entendi é o seguinte:

 

você criou essa regra para a página "produto.php" ok? mas como o apache vai saber q eu quero chamar a página "produto" ao invés da página "servicos", supondo que as duas necessitem de uma variável "id". Exemplo:

 

www.site.com/produto.php?id=10 - abre a página produto e pesquisa no banco o registro 10 da tabela produtos

www.site.com/servico.php?id=10 - abre a página servico e pesquisa no banco o registro 10 da tabela servicos

 

Desculpe a "lerdeza" de pensamento mas faz tempo q não programo. Preciso entrar em forma hehe

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Um se relaciona com o outro:

 

RewriteRule ^produto/([0-9]+)/?$ produto.php?id=$1

Nesta regra, você disse que quando o primeiro segmento for produtos, vai abrir a página produtos.php, e o id que pode ser qualquer número de 0 a 9 mais de uma vez ([0-9]+).

 

Você poderia fazer assim também:

 

RewriteRule ^(produto|servicos)/([0-9]+)/?$ $1.php?id=$2

Os $1, $2, $3 e etc são os retrovisores, isso tudo você entende estudando um pouco de expressão regular.

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

demorou mas entendi hehe O segredo é colocar a "página" de referência no começo. Agora ficou fácil.

 

MUITÍSSIMO obrigado pela ajuda. Vou estudar um pouco as expressões regulares agora...

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.