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
Fundador e Editor do itsTech.info, sempre gostou muito de tecnologia e decidiu levar esse gosto para todos através de um site de noticias.

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