Ir para conteúdo

POWERED BY:

Arquivado

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

matheusmarson

URL amigável com 2 parametros

Recommended Posts

Senhores

 

Estou com um problema para criar as regras para as url amigáveis com 2 parametros passados.

Meu .htaccess está assim:

<IfModule mod_rewrite.c>
RewriteEngine On  
RewriteBase /

#regra para a pagina de contatos
RewriteRule ^contatos/?$ /contatos.php [NC,L]
RewriteRule ^/?$ index.php [NC,L]

#regra para a página de produtos 
RewriteRule ^([a-zA-Z-0-9]+)/?$ /detalhes_imovel.php?id_imovel=$1&titulo=none [NC]
RewriteRule ^([a-zA-Z-0-9]+)/([a-zA-Z-0-9]+)/?$ /detalhes_imovel.php?id_imovel=$2&titulo=$1 [NC]

</IfModule>

 

Se eu chamar o site com um parametro a página é exibida normalmente

ex: http://www.egon.com.br/577

onde o 557 é id_imovel

 

agora se eu chamar o site com 2 parametros http://www.egon.com.br/titulo/577 onde titulo seria o titulo do imóvel e 557 o id do imóvel a página até é chamada mas sem formatação, sem imagens, sem os dados do imóvel, etc.....

Não estou sabendo como resolver isso

 

Alguem poderia me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

De uma forma rápida você pode fazer assim

 

$url = explode("/", $_SERVER["REQUEST_URI"]);
$pag = $url[1];
$id = $url[2];

 

depois na hora de fazer o select pega o $id passado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seu problema é o seguinte.

 

No primeiro caso, que funciona, o ID do imóvel está sendo acessado a partir da raiz do site, como se fosse um diretório.

 

No segundo caso, a partir de um nível abaixo (ou a dentro, se preferir), como se fosse um diretório dentro de outro.

 

Em que isso influencia.

 

Acontece que sua declaração de invocação CSS está assim:

 

CSS/principal.css

Isso será interpetado pelo browser como sendo o arquivo principal.css dentro do diretório CSS localizado a partir de onde a requisição foi feita.

 

No primeiro caso funciona pois o diretório CSS também está na raiz do site. No segundo não pois o navegador está interpretand a chamada como sendo:

 

http://www.egon.com.br/titulo/CSS/principal.css

Viu?

 

Você tem duas alternativas:

 

a) Usar caminhos absolutos, desde o http:// até a extensão do arquivo

 

B) Adicionar uma / (barra) antes da palavra CSS, forçando o navegador a ler a estrutura à frente dela a partir da raiz.

 

Eu particularmente já tive alguns problemas com a segunda alternativa. Mas isso é com você. Veja qual se adapta melhor ao seu caso.

 

P.S.: Você sabe pra quê serve as flags NC e L?

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.