Jump to content

Friendly URL - Implementar URL Routing / Básico


GrandSir

Recommended Posts

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 :

Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L]

Agora no ficheiro php escrevemos o seguinte :

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.

Edited by apocsantos
Link to comment
Share on other sites

  • 2 weeks later...
  • 1 month later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.