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]