Ir para conteúdo

POWERED BY:

Arquivado

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

richard nicson

Desenvolvimento de URL Amigável

Recommended Posts

Bom dia pessoa,bom estou com um problema onde fiz pesquisas para tentar solucionar porém nada igual ao meu foi encontrado.

Por isso resolvi buscar ajuda com vocês tenho um portal de notícias onde nesse portal o desenvolvedor criou ele com o seguinte sistema de url.

 

?pg=noticia&id=665

 

 

todos as noticias são separadas por categorias porém elas são buscadas através do pg=noticia e do id em geral.

 

 

Eu pretendo implentar nele url amigável pois estou mesmo que seja algo como.

 

categoria/titulo-da-noticia

 

pois isso vai valorizar muito meu portal,principalmente nos mecanismos de pesquisas.

 

Tentei usar o gerador de url da códigos na web:

http://www.codigosnaweb.com/Gerador-de-url-amigaveis_82_1-PHP.html

 

mas não resolve pra mim pode ajudar alguém,pois esse gerador a única coisa que faz,é criar no meu caso ficaria.

 

noticia/id

 

não teria fundamento nenhum entendem.

 

Alguém pode me dar dica de como fazer isso? tem algum tutorial na internet que ensinar a trocar o id e inserir o titulo? como posso buscar o titulo no banco de dados,ler ele em get e transformar em url com traços nos espaços?

 

como posso inserir a page categoria antes para organizar as url por categoria.

 

Meu Sistema de notícias foi feito em php e por isso não tem nada em wordpress.

 

Quem puder me ajudar agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

como posso buscar o titulo no banco de dados,ler ele em get e transformar em url com traços nos espaços?

Você já terá que salvar o título formatado no banco de dados, tendo isto basta pegar o título da url e fazer a query, eu particularmente sempre jogo o ID na url porque é mais prático.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

tem como cita um ex:

eu uso esse para chamar a id e pegar os dados

 

 

<?

if ($_GET['id']>0) {
    $busca = " AND id_galeria=".(int)$_GET['id_galeria'];
} else if ($_GET['titulo']>0) {
    $busca = " AND galerias.titulo=".(int)$_GET['titulo'];
}

$dados = db_dados("
    SELECT
        galerias.*,
        DATE_FORMAT(galerias.data,'%d/%m/%Y')  as data1
    FROM
        galerias
    WHERE 1
        ".$busca."
    ORDER BY
        data DESC
    LIMIT 1;
        ");
    $dados['titulo']=str_replace('\\','',$dados['titulo']);
    $dados['texto']=str_replace('\\','',$dados['texto']);
    
    db_consulta('UPDATE galerias SET contador=contador+1 WHERE id_galeria='.(int)$dados['id_galeria']." LIMIT 1");
    
?>

tem como deixar que nem o amigo ali de cima falo?

tipo: meudominio.com/fotos-ver/facebook sem o id?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, eu ja uso urls amigáveis, mas para mim exibição de fotos

ta assim /fotos-ver/id/20/facebookf-fest

 

eu quero tirar o ID da url!

eu fiz isso ontem, mas o meu código ele nao busca a ID

se eu fizer assim

/fotos-ver/facebook-fest

 

tem como mudar algo no script que poste acima?

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara, você vai ter que definir um id único textual para cada foto.

No caso, "facebook-fest" seria o id "amigável". Você vai ter que gravar esse texto em algum campo e mostrar quando for requisitado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom, no meu script so preciso da id da galeria para chamar as fotos

pelo que eu li, vo ter que criar na tabela mais um campo com o nome ex: urlamigavel

 

mas agora no script nao sei como chama o ID da url amigavel para exibir,

if ($_GET['urlamigavel']>0) {     $busca = " AND urlamigavel=".(int)$_GET['urlamigavel']; }

pq assim é facil,o duro e fazer buscar a ID sem ter que fazer um _GET

Compartilhar este post


Link para o post
Compartilhar em outros sites

exatamente como o Cristiano falou, cria um outro campo (varchar(255)) na tabela notícias chamado "url" por exemplo e cria uma chave única para esse campo.

 

o htaccess ficaria mais ou menos assim:

 

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.+)$ index.php?url=$1

 

E no index.php ficaria mais ou menos assim, usando PDO:

 

$statement = $db->prepare('SELECT * FROM noticias WHERE url = :url');
$statement->bindParam(':url', $_GET['url']), PDO::PARAM_STR, 255);
$statement->execute();
$noticia = $statement->fetchObject();

 

Eu fiz sem testar, então pode haver alguma variação, mas o caminho é esse aí.

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.