How to use friendly urls?

3

I currently use MVC in my project and when I access my system it shows a url like this:

http://localhost/view/html/cliente.html

What I would like to get is:

localhost/cliente because it is the only file called client that exists, if a new folder looks like this:

localhost/boleto/bradesco

being accessed by:

http://localhost/view/html/boleto/bradesco.html

Currently I use jQuery , php , html , each separated from the other. is there a solution to dynamically creating friendly urls using these languages to get this result?

    
asked by anonymous 05.03.2015 / 14:52

1 answer

3

Hello, you use the .htaccess file to dynamically handle your urls.

Beneath a friendly url scenario:

.htaccess

RewriteEngine On
RewriteRule %{REQUEST_FILENAME} !-f
RewriteRule %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?pag=$1

What this code does is manipulate your URL (in order for it to work, the ModRewrite function must be enabled on your server). From now on, your site's URLs can be written in a simpler way. Internally, apache will interpret an address that looks like this: itsite.com.br/noticia/12; as if it were like this: suaite.com.br/index.php?pag=noticia/12;

Now let's create the file that will handle the URL, this file will access the variable pag. Let's call this file from url.php

< ? php
//a variavel atual, vai receber o que estiver na variável pag
//se não tiver nada, ela recebe o valor: principal“”
$atual = (isset($_GET['isw'])) ? $_GET['isw'] : 'principal';

//aqui setamos um diretório onde ficarão as páginas internas do site
$pasta = 'paginas';

//vamos testar se a variável pag possui alguma “/”
//ou seja, caso a url seja: /noticia/2
if (substr_count($atual, '/') > 0) {
//utilizamos o explode para separar os valores depois de cada “/”
$atual = explode('/', $atual);
/*testamos se depois do endereço do site, o valor da página é um arquivo existente
caso não exista, iremos atribuir o valor “erro” que será uma página de erro
personalizada que existirá dentro da pasta '$pasta', esse arquivo será incluido sempre que um endereço invalido for digitado */
$pagina = (file_exists("{$pasta}/" . $atual[0] . '.php')) ? $atual[0] : 'erro';
//ao que tiver depois da segunda “/” atribuiremos a variavel $id
$id = $atual[1];
//ao que tiver depois da terceira “/” atribuiremos a variavel $busca
$busca = @$atual[2];    
} else {
$pagina = (file_exists("{$pasta}/" . $atual . '.php')) ? $atual : 'erro';
$id = 0;
$frame=0;
}

//com o uso de URL amigáveis se torna necessário que arquivos sejam chamados
//com o seu caminho completo, isso porque as imagens levam em consideração a URL
// ex: <img src=”<?=$siteUrl?>/pasta/arquivo.png” />
$siteUrl = "http://seusite.com.br”;

?>

Directory tree of our site:

www/.htaccess
www/index.php
www/url.php
www/paginas/principal.php
www/paginas/{TODAS AS OUTRAS PAGINAS ITERNAS}
www/imagens

Font

    
05.03.2015 / 15:11