Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #59 da revista programar. Faz já o download aqui!

GrandSir

Friendly URL - Implementar URL Routing / Básico

Mensagens Recomendadas

GrandSir    5
GrandSir

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.

Editado por apocsantos

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
GrandSir    5
GrandSir

Criar pastas para converter url?????

Para quê complicar?

Não criei as pastas para converter o url, as pastas são utilizadas para identificar a informação.

Podes muito bem não criar as pastas se não fores a precisar em dividir o teu site em categorias.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.