Quantcast
Channel: Tópicos
Viewing all articles
Browse latest Browse all 14700

Friendly URL - Implementar URL Routing / Básico

$
0
0
Ora boas,

O nosso objetivo é transformar o URL do nosso site,  de maneira a que se torne :
  • Mais fácil de ser lido e relembrado - amigáveis ao utilizador
  • Melhor análise pelos motores de procura - SEO
Então queremos que isto :

https://www.url.com/product.php?id=1

torne-se nisto :

https://www.url.com/product/Samsung&20Galaxy&20S2
(Samsung Galaxy S2 sem o URL encoding)

Para isso vamos precisar de criar :
  • Uma pasta com o tipo de informação - product (referente ao nome do nosso antigo ficheiro php).
  • Um ficheiro php dentro do pasta referida no ponto anterior.
  • um ficheiro .htaccess , no interior dessa pasta.
de maneira que o nosso diretório seja algo do genêro:
  • root
  • /product/
  • /product/index.php
  • /product/.htaccess
Começemos pelo ficheiro .htaccess,onde colocaremos o seguinte código :
Código :
Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L]

Agora no ficheiro php escrevemos o seguinte :
Código :
function getCurrentUri() {
$basepath = implode('/', array_slice(explode('/', $_SERVER['SCRIPT_NAME']), 0, -1)) . '/';
$uri = substr($_SERVER['REQUEST_URI'], strlen($basepath));
if (strstr($uri, '?')) $uri = substr($uri, 0, strpos($uri, '?'));
$uri = '/' . trim($uri, '/');
return $uri;
}

$url = getCurrentUri();
$pages = array();
$pages = explode('/', $url);

foreach($pages as $page)
{
if(trim($page) != '')
array_push($pages, $page);
}

echo $pages[1];

Agora o resultado final - vamos abrir o nosso site na localização do /product/ :
https://url.com/product/

e escrevemos algo à seguir do endereço, de maneira que fique :
https://url.com/product/Samsung Galaxy S2

Voilá ! mas...
o texto não está totalmente tal como nós iriamos querer - Samsung%20Galaxy%20S2.

Nesse caso iremos descodificar o endereço e substituímos o output por :

echo urldecode ( $pages[1] )

http://php.net/manual/pt_BR/function.urldecode.php

Respondarei à qualquer dúvida.

Espero ter ajudado a alcançar os teus resultados,

Obrigado, Vladimir.

Viewing all articles
Browse latest Browse all 14700

Trending Articles