Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Bru_ce

URL Amigável

Recommended Posts

Boa Tarde Amigos,

Preciso fazer arrumar o site aqui do trampo, e quero deixar a URL "bonitinha" !

 

Atualmente ela esta assim:

http://www.site.com.br/quem-somos.php

 

Gostaria que ela ficasse assim:

http://www.site.com.br/quem-somos

 

Já tentei configurar o htaccess, porém sem sucesso, alguém poderia me ajudar de uma forma prática me dando uma solução para meu problema ?

 

 

Obrigado ! :natalbiggrin:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você deve estudar .HTACCESS, vou ainda estou no começo desse estudo, mas já consegui fazer alguma coisa.

1º você cria o .htaccess que é um arquivo que só possui esta extenção ele não tem nome, no meu caso está assim:

ele precisa ficar na raiz do site

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

 

Procura na net que você achará muita coisa falando sobre ele, aqui mesmo no forum um vez deixaram para mim uma aula completa.

 

no index, você recupera o valor da url passada, assim

$url  = $_GET['url'];
$urlE = explode("/", $url);

$arquivos = $urlE[0];
$post     = $urlE[1];

$paginas  = array('home','quem-somos','servicos','estrutura-metalica','manutencao-predial-residencial','construcao-civil','clientes','fale-conosco', 'manutencao', 'pintura');

include_once("header.php"); 

   if(isset($arquivos) && in_array($arquivos, $paginas)){
	include "nav/$arquivos.php";
} else if(isset($arquivos) && $arquivos == ''){
	include 'nav/home.php';
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Irei tentar, funciona em LOCALHOST ?

 

sim, mas na configuração você precisa dizer ao php onde ele irá buscar a configuração, exemplo:

// conexão
$servidor = 'localhost';
$usuario  = 'root';
$senha    = '';
$db       = 'urlamigavel';
$urlBase  = 'http://localhost/jbmanutencao';


// no menu
<li><a href="<?php echo $urlBase; ?>/quem-somos" title="sdfsdfdsaf">Quem Somos</a></li>

 

+- isso

Compartilhar este post


Link para o post
Compartilhar em outros sites

Marcos, funcionou Cara.

 

Meu .HTACCESS ficou assim então:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php 

 

Você poderia me explicar cada linha por favor ?

 

PHP

<?php

$urlBase  = 'http://localhost/bruno';

?>

 

HTML

<li>
<a href="<?php echo $urlBase; ?>/quem-somos" title="URL Amigável">Quem Somos</a>
</li>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Marcos, funcionou Cara.

 

Meu .HTACCESS ficou assim então:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php 

 

Você poderia me explicar cada linha por favor ?

 

PHP

<?php

$urlBase  = 'http://localhost/bruno';

?>

 

HTML

<li>
<a href="<?php echo $urlBase; ?>/quem-somos" title="URL Amigável">Quem Somos</a>
</li>

 

Na urlbase é onde pegará o arquivo, aqui estou dizendo para pegar em localhost o arquivo quem-somos, quando você colocar no servidor você colocar o endereço, www-seu-site.com.br

 

é isso

agora veja bem, o assunto é bem amplo, caso você vá pegar as informações no BD a lógica é a mesma, mas muda algumas coisas na estrutura.

Compartilhar este post


Link para o post
Compartilhar em outros sites

não entendi essa linha mano,

RewriteRule ^(.*)$ $1.php 

 

estaria escrevendo uma nova regra certo ?

para que serve esse "1" ? tentei tirar e deu erro ..

Compartilhar este post


Link para o post
Compartilhar em outros sites

não entendi essa linha mano,

RewriteRule ^(.*)$ $1.php 

 

estaria escrevendo uma nova regra certo ?

para qye serve esse "1" ? tentei tirar e deu erro ..

 

No seu caso aí, ñ sei o q você quis fazer, mas no caso abaixo é assim:

estou dizendo para o php que no arquivo index.php ele irá receber o valor que será passado ($1 qualquer valor) para a variável url.

index.php?url=$1

Compartilhar este post


Link para o post
Compartilhar em outros sites

não entendi essa linha mano,

RewriteRule ^(.*)$ $1.php 

 

estaria escrevendo uma nova regra certo ?

para que serve esse "1" ? tentei tirar e deu erro ..

 

Bom no caso ae $1 é tipo uma variável... <qualquerCoisa>.php

 

O que a regra diz é quando você digitar algo como:

http://www.site.com.br/quem-somos 

ele vai direcionar para

http://www.site.com.br/quem-somos.php 

 

Qualquer coisa que você digitar na url ele vai adicionar .php no final.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Este código é apenas um exemplo para resolver seu problema conforme você escreveu la em cima.

 

Mais recomendo que pesquise na internet outros exemplos de como gerenciar URLs amigáveis.

 

O exemplo do Marcos Barbosa já eh um melhor que esse que eu falei.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Este código é apenas um exemplo para resolver seu problema conforme você escreveu la em cima.

 

Mais recomendo que pesquise na internet outros exemplos de como gerenciar URLs amigáveis.

 

O exemplo do Marcos Barbosa já eh um melhor que esse que eu falei.

 

Tem que pesquisar e estudar, pois quando se trata de banco de dados, tipo www.seusite.com.br/bolsa-cor-de-rosa

você trata isso antes.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.