Teu 0 Denunciar post Postado Março 24, 2011 Ei Galera, bom dia! Gente, ja quebrei a cabeça tentando entender o bendido do .htaccess mas não consegui, alguém pode me ajudar? Estou pegando os dados do mysql normamente como sempre fiz estou exibindo o conteudo normamente mas na barra de endereços o link é exibido da seguinte forma: www.meusite.com.br/artigos.php?cod_artigo=2 esta url exibe a noticia: Gerra no Oriente médio Então estou precisando exibir a url da seguinte forma www.meusite.com.br/artigos/gerra_no_oriente_medio.php Alguém sabe me dizer como fazer isso? Não faço ideia de como fazer. Obrigado Galera! ^_^ Teu =) Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Março 24, 2011 Esses posts vão te ajudar http://blog.thiagobelem.net/aprendendo-urls-amigaveis/ http://blog.thiagobelem.net/aprendendo-urls-amigaveis-com-regras-complexas/ se tiver duvidas, depois de tentar fazer, poste. Compartilhar este post Link para o post Compartilhar em outros sites
Teu 0 Denunciar post Postado Março 26, 2011 Olá William!!! Valeu pela dica, me ajudou bastante!! Se tiver duvidas vou postar aqui! Valeu!! Compartilhar este post Link para o post Compartilhar em outros sites
Teu 0 Denunciar post Postado Março 31, 2011 Galera, estou reabrindo o tópico aqui porque tem uma coisa que não entendi. Eu primeiro criei o arquivo .htaccess com o código abaixo: RewriteEngine On RewriteRule ^(.+)\/?([0-9]*)\/?$ /artigos.php?s=$1 O meu arquivo artigos.php é recebe uma outra página com o conteúdo dos artigos ficando da seguinte forma: artigos.php <?php require("conteudo_artigos.php"); ?> Na página conteúdo_artigos que tem a instrução sql que traz do banco todos os artigos fazendo assim uma lista com o titulo de todos eles, então, montei o link da seguinte forma para exibir o conteúdo do artigo solicitado: <a href=artigos.php?cod_artigo=<?php echo($dadosdb['id'])><?php echo($dadosdb['titulo'])</a> Queria saber onde eu monto a url amigável dentro deste arquivo, pois não estou entendendo isso. Obrigado. Teu Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Março 31, 2011 trocando: <a href=artigos.php?cod_artigo=<?php echo($dadosdb['id'])><?php echo($dadosdb['titulo'])</a> por <a href="<?php echo $dadosdb['titulo']; ?>/<?php echo $dadosdb['id']; ?"><?php echo $dadosdb['titulo']; ?></a> se é que eu entendi a sua dúvida. Compartilhar este post Link para o post Compartilhar em outros sites
Teu 0 Denunciar post Postado Março 31, 2011 Então ao inves de exbir assim: <a href=artigos.php?cod_artigo=<?php echo($dadosdb['id'])><?php echo($dadosdb['titulo'])</a> www.meusite.com.br/artigos.php?=cod_artigo=20 que faz referência a noticia gerra ao terror seria assim? <a href="<?php echo $dadosdb['titulo']; ?>/<?php echo $dadosdb['id']; ?"><?php echo $dadosdb['titulo']; ?></a> www.meusite.com.br/guerra_ao_terror/20/guerra_ao_terror acho que eu preciso mostar assim: www.meusite.com.br/artigos/guerra_ao_terror Entendeu!? Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Março 31, 2011 Eu entendi sim, e você? da forma que mostrei, o link ficaria www.meusite.com.br/guerra_ao_terror/20/ a segunda parte que coloquei, é a palavra clicavel. se você precisa mostrar de outra forma, então monte assim. mas corrija a Expressão Regular da RewriteRule, para entender isso ai, e traduzir para o servidor o que era antes. Compartilhar este post Link para o post Compartilhar em outros sites
Teu 0 Denunciar post Postado Março 31, 2011 Eu to perdido..rsrs Perdoa minha ignorância sobre este assunto, então posso montar o link assim: <a href="artigos/<?php echo $dadosdb['titulo']; ?>"><?php echo $dadosdb['titulo']; ?></a> será que aparece na url assim: www.meusite.com.br/artigos/guerra_ao_terror sem entender que artigos é um diretório? Valeu! Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Março 31, 2011 só se você editar a tua regra, pois com essa aqui: RewriteRule ^(.+)\/?([0-9]*)\/?$ /artigos.php?s=$1 isso que você quer não vai funcionar. Estou retirando o [Resolvido] do título. Compartilhar este post Link para o post Compartilhar em outros sites
Teu 0 Denunciar post Postado Março 31, 2011 ok, William, vou editar minha regra para: RewriteRule ^artigos/([a-z0-9-]+)/([0-9]+)/?$ /artigos.php?s=$2 Essa variavel s=$2 é quem vai receber deverá ficar assim no arquivo? //pega o id do artigo $cod = $_GET['s']; "SELECT * FROM artigos WHERE id_artigo = '$cod'"; //monta o link para exibir o artigo <a href="artigos/s/<?php echo $dadosdb['titulo']; ?>"><?php echo $dadosdb['titulo']; ?></a> Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Março 31, 2011 vai testando cara.. mas olha: isso: artigos/([a-z0-9-]+)/([0-9]+)/ não ta batendo com isso: artigos/s/<?php echo $dadosdb['titulo']; ?> esse /s não existe na ER, e a ER espera receber depois do titulo, alguns numeros, e você não ta enviando nenhum. vai fazendo e testando.. vai aos pooucos. Compartilhar este post Link para o post Compartilhar em outros sites
Teu 0 Denunciar post Postado Abril 1, 2011 Consegui editar o arquivo .htaccess da seguinte forma: se eu quero exibir primeiro o id e deopois o titulo do texto eu coloquei assim: RewriteRule ^artigos/[0-9]{3,9}-(.*)/?$ /artigos.php?id=$2&titulo=$1 [NC,L] Essa rewriteRule é para exibir a url desta forma: www.meusite.com.br/artigos/2/guerra_ao_terror então para passar para o link fiz da seguinte forma: <a href="artigos.php/<?php echo nl2br ($dadosdb_opcao['id_artigo']); ?>/<?php echo nl2br($dadosdb_opcao['titulo_artigo']); ?>"><?php echo nl2br($dadosdb_opcao['titulo_artigo']); ?></a> exibe a url da seguinte forma: www.meusite.com.br/artigo/2/guerra ao terror mas o conteúdo não muda e a página perde a formatação css Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Abril 4, 2011 mas o conteúdo não muda e a página perde a formatação css ? faça um debug: <?php echo '<pre>'; var_dump( $_GET ); veja oque sair e entenda. qnto a formatação, veja sobre a tag <base />, ou faça uma regra mais especifica. Compartilhar este post Link para o post Compartilhar em outros sites
Teu 0 Denunciar post Postado Abril 4, 2011 Consegui! O erro tava na regra do .htaccess que foi substituida com ajuda do Matheus Tavares!!! :clap: RewriteRule artigo/([0-9]{1,5})/?[a-zA-Z0-9-]* artigos.php?id=$1 Outra coisa que entendi, e que não estava entendendo, era como pegar o valor da RewriteRule, então ficaria assim: artigos.php?id=$1 Esse id=$1 tem que ser pego pelo GET assim: $variavel = $_GET['id'] ai é só jogar ele na consulta SQL e sair pro abraço!!!! Valeu pela força! :joia: Compartilhar este post Link para o post Compartilhar em outros sites