Depois de alguns pedidos solicitando mais exemplos e informações sobre como implementar URL amigável de maneiras diferentes e com um sistema de paginação resolvi criar esse post em vez de um vídeo, mas antes de continuar peço que assista o vídeo do meu canal do YouTube.
No vídeo acima temos 2 códigos principais o primeiro do arquivo “.htaccess” e o do arquivo “index.php” segue eles logo abaixo.
Arquivo: “.htaccess”
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L]
Arquivo: “index.php”
//index.php <?php $REQUEST_URI = filter_input(INPUT_SERVER, 'REQUEST_URI'); $INITE = strpos($REQUEST_URI, '?'); if ($INITE): $REQUEST_URI = substr($REQUEST_URI, 0, $INITE); endif; $REQUEST_URI_PASTA = substr($REQUEST_URI, 1); $URL = explode('/', $REQUEST_URI_PASTA); $URL[0] = ($URL[0] != '' ? $URL[0] : 'home'); if (file_exists('_site_/' . $URL[0] . '.php')): require('_site_/' . $URL[0] . '.php'); elseif (is_dir('_site_/' . $URL[0])): if (isset($URL[1]) &amp;&amp; file_exists('_site_/' . $URL[0] . '/' . $URL[1] . '.php')): require('_site_/' . $URL[0] . '/' . $URL[1] . '.php'); else: require('_site_/404.php'); endif; else: require('_site_/404.php'); endif;
Como você pode ver no vídeo de acordo com a URL que você acessar ele vai dar um “require” no arquivo dentro da pasta “_site_”, digamos que você use esse sistema em um site de noticias e você deseja que o “id” da noticia seja passado via URL amigável e não via parâmetros “_GET” você iria criar o arquivo “noticia.php” dentro da pasta “_site_”.
Apos criar o arquivo “noticia.php” dentro da pasta “_site_” você vai acessar a URL “www.dominio.com/noticia” ao acessar essa URL você vai perceber que ele vai mostrar para você o arquivo “noticia.php” como esse arquivo foi mostrado através de um “require” todas a variáveis que foram setadas dentro do arquivo “index.php” estão disponíveis no arquivo “noticia.php”.
Com isso digamos que você queira acessar a noticia com o “id” igual a “12” então a URL seria “www.dominio.com/noticia/12” logo o “id” estaria disponível dentro do arquivo “noticia.php” através da variável “$URL[1]”, assim você pode utilizar a variável para fazer suas consultas dentro do banco de dados.
A mesma ideia vale para um sistema de paginação com URL amigável, caso tenha alguma duvida comente essa publicação para que eu possa tirar suas duvidas.
Comments