Categorias

Criando URL amigáveis com um código simples e funcional

Com apenas dois passos é possível transformar a sua URL que está nesse formato: https://www.seusite.com.br/index.php?pagina=noticia&id_noticia=12 para um formato mais amigável: https://www.seusite.com.br/noticia/12.

Para isso iremo utilizar dois arquivos, um intitulado .htaccess e outro que iremos chamas de url.php.
Primeiro o arquivo .htaccess.

Copie o código abaixo e salve em um arquivo com o nome .htaccess.

Obs: é possível que no Windows não seja tão fácil criar esse arquivo, por isso aconselho que crie-o dentro da sua hospedagem ou utilizando o Linux.

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

O que esse código faz é manipular a sua URL (para que ele funcione é necessário que a função ModRewrite esteja ativa no seu servidor). A partir de agora, as URL’s do seu site podem ser escritas de forma mais simples. Internamente o apache vai interpretar um endereço que está assim: seusite.com.br/noticia/12; como se fosse assim: seusite.com.br/index.php?pag=noticia/12;

Agora vamos criar o arquivo que vai manipular a URL, esse arquivo vai acessar a variável pag. Vamos chamar esse arquivo de url.php

 0) {
	//utilizamos o explode para separar os valores depois de cada “/”
	$atual = explode('/', $atual);
	/*testamos se depois do endereço do site, o valor da página é um arquivo existente
	caso não exista, iremos atribuir o valor “erro” que será uma página de erro
	 personalizada que existirá dentro da pasta '$pasta', esse arquivo será incluido sempre que um endereço invalido for digitado */
	$pagina = (file_exists("{$pasta}/" . $atual[0] . '.php')) ? $atual[0] : 'erro';
	//ao que tiver depois da segunda “/” atribuiremos a variavel $id
	$id = $atual[1];
	//ao que tiver depois da terceira “/” atribuiremos a variavel $busca
	$busca = @$atual[2];	
	
} else {
	
	$pagina = (file_exists("{$pasta}/" . $atual . '.php')) ? $atual : 'erro';
	$id = 0;
	$frame=0;
	
}

//com o uso de URL amigáveis se torna necessário que arquivos sejam chamados
//com o seu caminho completo, isso porque as imagens levam em consideração a URL
// ex: /pasta/arquivo.png” />
$siteUrl = "https://seusite.com.br”;

?>

E agora o nosso último passo será utilizar na index do nosso site as funcionalidades do arquivo url.php.
De uma forma estrutural iremos fazer o seguinte:

Arvore de diretórios do nosso site:

  • www/.htaccess
  • www/index.php
  • www/url.php
  • www/paginas/principal.php
  • www/paginas/{TODAS AS OUTRAS PAGINAS ITERNAS}
  • www/imagens

Estrutura do arquivo index.php:


[CABEÇALHO, MENUS E OUTROS ITENS QUE REPETEM EM TODAS AS PÁGINAS]

[RODAPÉ, MENUS E OUTROS ITENS QUE REPETEM EM TODAS AS PÁGINAS]