PHPTutoriais

URL amigável com PHP 7 e HTACCESS

0

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]) && 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.

Rodrigues Costa
Sempre gostei muito de tecnologia e decidi levar esse gosto para todos através de um site.

Xbox Game Pass: Jogue mais de 100 jogos no Xbox One por US$ 10 por mês

Previous article

Métodos JavaScript para manipular String, Array, Number entre outros

Next article

You may also like

Comments

Comments are closed.