htaccess para URL amigavel

148 views
Skip to first unread message

wanderson.ubuntu

unread,
May 27, 2015, 3:11:00 PM5/27/15
to php-b...@googlegroups.com
boa tarde galera.

lendo alguns tutoriais por ae sobre url amigável consegui o seguinte resultado


Para melhorar eu queria tirar esse id 1 da url mas não consegui. olha meus arquivos ae!

Arquivo .htaccess
Options +FollowSymLinks
RewriteEngine On
<IfModule mod_rewrite.c>
RewriteRule ^([0-9]+)-([a-z]) noticia.php?id=$1&titulo=$2 [NC,L]
</IfModule>

Arquivo index Função slug
<?php
function slug($str){
$a = array('À', 'todos os caracteres especias aqui','?');
$b = array('A','todos os caracteres especias aqui','o');
return strtolower(preg_replace(array('/[^a-zA-Z0-9 -]/','/[ -]+/','/^-|-$/'),array('','-',''),str_replace($a,$b,$str)));
} ?>

Arquivo index link
<a href="<?php echo slug($con_noticia['id']."-".$con_noticia['titulo']); ?>" >

alguém pode me ajudar?

Tayron Miranda

unread,
May 28, 2015, 7:33:53 AM5/28/15
to php-b...@googlegroups.com
Sabe o que você pode fazer, quando cadastrar uma noticia cadastra junto uma url: Exemplo: título: Título da notícia, url: titulo-da-noticia, dai quando for usar sua url, vc chama assim: www.seusite.com.br/noticia/titulo-da-noticia. na sua action onde você for buscar a noticia no banco, você pesquisa por url e não por id igual você ta tentando fazer acima.

--
Você recebeu essa mensagem porque está inscrito no grupo "php-brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para php-brasil+...@googlegroups.com.
Para postar nesse grupo, envie um e-mail para php-b...@googlegroups.com.
Acesse esse grupo em http://groups.google.com/group/php-brasil.
Para mais opções, acesse https://groups.google.com/d/optout.

Eduardo Kraus

unread,
May 28, 2015, 7:40:19 AM5/28/15
to php-brasil

http://php.eduardokraus.com/trabalhando-com-url-amigavel-no-php

Enviado do meu 486 DX100 2MB RAM

--

Wanderson Salomão Lisboa de Lima

unread,
May 28, 2015, 9:05:22 AM5/28/15
to php-b...@googlegroups.com
eu pensei nisto Tayron, mas a minha noticia é buscada pelo ID em noticia.php ai desta forma já não dá!

Guilherme Medeiros

unread,
May 28, 2015, 9:09:29 AM5/28/15
to php-b...@googlegroups.com
Bicho
te decide.

Se tu quer tirar o ID da URL, tua pagina noticia.php tem que parar de pesquisar a noticia pelo ID.
¬¬

O máximo que dá pra fazer é http://site/id/texto
De resto, tu vai ter que mudar teu código.



Cassiano Ricardo Mourão

unread,
May 28, 2015, 9:09:44 AM5/28/15
to php-b...@googlegroups.com
Porquê ele foi programado em "russian php" e você não tem como mudar o fonte né?

sei como é...

Em 28 de maio de 2015 10:05, Wanderson Salomão Lisboa de Lima <wanderso...@gmail.com> escreveu:

Wanderson Salomão Lisboa de Lima

unread,
May 28, 2015, 9:18:00 AM5/28/15
to php-b...@googlegroups.com
hahahahahaha não sou um profissional do desenvolvimento mas "russian php" é d+. 

Agora Guilherme se eu buscar minhas noticias pelo titulo vai dar errado pq com o meu slug fica titulo-da-noticia e o titulo que esta gravado no banco é Titulo da Notícia.

Maykonn Welington Candido

unread,
May 28, 2015, 9:20:29 AM5/28/15
to php-b...@googlegroups.com
Só criar uma nova coluna title_slug por exemplo ai busca nesse campo e não no título mesmo ou id. Ah, bota index nessa coluna pelo amor de Deus.

Atenciosamente,

Maykonn Welington Candido

http://br.linkedin.com/in/maykonnwcandido

Cassiano Ricardo Mourão

unread,
May 28, 2015, 9:24:18 AM5/28/15
to php-b...@googlegroups.com
EXATAMENTE por isso que você vai salvar o slug e ele deverá ser unique...
Man, não tem dificuldade nenhuma isso que você quer fazer, principalmente com o quê você já tem pronto. A questão é isso que você acabou de dizer, que não é um profissional de desenvolvimento e suponho também que não fez o quê está pronto agora, certo?

Enfim mais mastigado que meu trident diário: 
sua tabela terá uma nova coluna que é o slug em si;
na inserção da notícia você irá salvar esse slug e capturar eventuais erros de duplicate key e ver como tratar;
no mod_rewrite vai retirar o ID;
na busca vai pesquisar pelo slug ao invés do ID.

Wanderson Salomão Lisboa de Lima

unread,
May 28, 2015, 9:40:10 AM5/28/15
to php-b...@googlegroups.com
já estou ligado na dica de v6 Cassiano, Maykonn e Tayron. Eu estava pensando que editar .htaccess ja resolveria mas caiu a ficha!

ps: Cassiano mesmo sendo level 1 o fonte é mesmo.. 

Tayron Miranda

unread,
May 28, 2015, 9:53:36 AM5/28/15
to php-b...@googlegroups.com
É o melhor caminho, inclusive na hora de editar e cadastrar, você pode criar uma rotina para criar esse slug sem que você tenha que preencher ele na mão na hora de editar e cadastrar.

Wanderson Salomão Lisboa de Lima

unread,
May 28, 2015, 9:58:43 AM5/28/15
to php-b...@googlegroups.com
estou lendo sobre isso agora Tayron, uma hora eu chego lá

Tayron Miranda

unread,
May 28, 2015, 10:54:59 AM5/28/15
to php-b...@googlegroups.com
Reply all
Reply to author
Forward
0 new messages