Ir para conteúdo

POWERED BY:

Arquivado

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

Miguel Rocha1

[Resolvido] Urls Amigaveis

Recommended Posts

Amigos estou com uma pequena duvida, encontrei uma videoaula que me levou a construir este script, a duvida esta em como faço para passar a url com o titulo e ao mesmo tempo passar o id, sem aparecer na url, deste genero assim:

 

http://www.tabonito.pt/bella-o-cadela-que-come-numa-cadeira-especial/

, e se possivel, podiam me responder a seguinte duvida, eu vou criar um sistema de paginaçao, como ficaria as urls nesse caso?

como teria de fazer? se me puderem indicar um site onde possa aprender isso, agredecia.

 

Codigo .htaccess

DirectoryIndex index.php
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?pg=$1

 

Codigo PHP

<?php

$atual = (isset($_GET['pg'])) ? $_GET['pg'] : 'home';

$permissao = array('home', 'produtos', 'empresa', 'erro');

$pasta = 'arquivos';

if(substr_count($atual, '/') > 0){

  $atual = explode('/', $atual);
  $pagina = (file_exists("{$pasta}/".$atual[0].'.php') && in_array($atual[0], $permissao)) ? $atual[0] : 'erro';
  $id = $atual[1];
}else{
  $pagina = (file_exists("{$pasta}/".$atual.'.php') && in_array($atual, $permissao)) ? $atual : 'erro';
  $id = 0;
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Pagina Principal</title>
</head>

<body>
<?php 
require("{$pasta}/{$pagina}.php");
?>
</body>
</html>

 

 

Obrigado desde de ja pessoal.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu faço a URL dessa forma:

www.site.com/artigos/4312-alguma-pagina-exemplo

Esse 4312 é o ID referente ao artigos/notícia/produto/etc. e é útil para páginas dinâmicas.

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(\w+)/(\d+)[^/]/?*$ index.php?content=$1&id=$2

 

Se a página for estática, faça algo assim:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^contato/?$ contato.html

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não... aí só salvando o título formatado (chamado de "slug") no banco de dados e pesquisar por ele, o que é mais lento do que pesquisar por inteiros...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode configurar o campo que guarda o texto formatado como INDEX no banco de dados, o que vai diminuir a diferença, mas ainda assim, comparar strings demora mais do que comparar números...

 

Imagine que você vai comparar 'tabela' com 'tabelado'... Serão 6 iterações até chegar ao fim de 'tabela' e encontrar o 'd' em tabelado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quando envolve paginação, eu costumo colocar a página no final da URL:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(\w+)/pagina/(\d+)/?*$ index.php?content=$1&page=$2

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.