Ir para conteúdo

POWERED BY:

Arquivado

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

DavidsonP

Criar url similar ao wordpress

Recommended Posts

Boa tarde,

Para pegar os dados do banco de dados do meu site, eu faço a verificação através de um id que eu coloco na url, exemplo:

www.meusite.com/noticia/65/titulo-da-noticia

Através do "65" eu comparo no banco e puxo os dados. No caso "noticia" é a página que faz a verificação.

O que eu gostaria de fazer é:

www.meusite.com/titulo-da-noticia

Só que eu não faço a mínima idéia de como fazer isso. Eu preciso apenas da lógica para entender como isso funciona. Desde já agradeço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Simples, salve titulo-da-noticia em alguma coluna do BD, recupere ela e use como informação para fazer a query.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito obrigado!

Só mais um dúvida: Como faço para o sistema identificar a página que a url pertence? No caso "/noticia/" leva para noticia.php, mas sem ela, como seria?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso você irá definir no seu htaccess... tem que ver o que tem lá hoje para adaptar a nova realidade.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tá bem básico

RewriteEngine On
  
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} (.*)/([^/]+)(\?.*)?$
  RewriteRule ^(.*)$ index.php?url=$1 [L,QSA]

Para chamar as páginas eu utilizo um switch

$url = explode("/",str_replace(strrchr($_SERVER["REQUEST_URI"], "?");

switch($url[1]){
        case "noticia":
                $url = "noticia.php";
                break;        		
        default:
                $url = "home.php";
                break;
}

include($url);

Eu consegui criar as slugs e compará-las no banco. Só queria deixar a url o mais limpo possível, porém essa parte está me pegando.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok e como você vai definir quando é uma notícia se não tem "noticia" na URL?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso é um problema, pois quem determina o funcionamento do seu sistema é você...

Por exemplo, se você usa páginas do tipo:
site.com.br/contato
site.com.br/fale-conosco

Você terá que definir vários case para elas e deixar o default exatamente para a noticia...

switch($url[1]){
case "contato":
$url = "contato.php";
break;         
default:
$url = "noticia.php";
break;
}

Dentro do notícia você terá que usar o $url[1] para fazer a query.

Ou você pode montar um array com todas as URLs estáticas (contato, fale-conosco) e etc e usar isso para testar, para não precisar de vários cases.

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.