Ir para conteúdo

POWERED BY:

Arquivado

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

Thiago H

URL Amigaveis .htaccess

Recommended Posts

Olá galera, estou estudando sobre url amigaveis e estou enfrentando um problema

 

 

segue o .htaccess

 

<IfModule mod_rewrite.c>

 

#habilita o modulo Rewrite

RewriteEngine On

 

#RewriteBase /

 

#Se a URL apontar para um arquivo, vai diretamente para ele

RewriteCond %{REQUEST_FILENAME} !-f

 

#Se a URL apontar para uma pasta, vai diretamente para ela

RewriteCond %{REQUEST_FILENAME} !-d

 

#Mostra o caminho completo do meu arquivo index.php - tratamento dos dados

RewriteRule !\.(gif|jpg|png|css|js|swf)$ index.php

 

#################################################################

##MODULOS

#################################################################

 

RewriteRule ^(.+)\/([0-9]*)\/?$ index.php?pag=$2

 

RewriteRule ^(.+)\/(.+)\/([0-9]*)\/?$ index.php?cod=$3

 

RewriteRule ^(.+)\/(.+)\/([0-9]*)\/(.+)\/?$ index.php?cod=$3

 

</IfModule>

 

se colocar http://localhost/novidades/1 ele vai na primeira regra e define a pag=1

 

se colocar http://localhost/novidades/ver/1 ele vai na segunda regra e define o cod=1

 

porem essas regras vao funcionar para todas as paginas do site, gostaria de saber se ha possibilidade de definir somente no modulo de novidades por exemplo.

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem sim,procura dar uma lida sobre expressões regulares que sua dúvida será resolvida.

No caso,você trocaria:

RewriteRule ^(.+)\/([0-9]*)\/?$ index.php?pag=$2

RewriteRule ^(.+)\/(.+)\/([0-9]*)\/?$ index.php?cod=$3

RewriteRule ^(.+)\/(.+)\/([0-9]*)\/(.+)\/?$ index.php?cod=$3

Por:

RewriteRule ^novidades\/([0-9]*)\/?$ index.php?pag=$1

RewriteRule ^novidades\/(.+)\/([0-9]*)\/?$ index.php?cod=$2

RewriteRule ^novidades\/(.+)\/([0-9]*)\/(.+)\/?$ index.php?cod=$2

Dá uma lida sobre ER's...=]

Abraço!

 

Ps:essas ER's tão certas?

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu ja tinha tentando fazer isso...substitui aqui por essa modificada e não funcionou

 

carrega a pagina devido as verificações no php mais nao pega as variaveis

Compartilhar este post


Link para o post
Compartilhar em outros sites

estou mandando http://localhost/novidades/1

 

quero que va para index.php?pag=1

 

 

se utilizar RewriteRule ^(.+)\/([0-9]*)\/?$ index.php?pag=$2 funciona corretamente porem a regra é incluida em outras paginas por exemplo se quiser abrir http://localhost/galeria/1 ja não seria pag seria cod por exemplo

 

entao queria fazer as regras de acordo com as paginas

 

ja tentei fazer assim RewriteRule ^novidades\/(.+)\/([0-9]*)\/?$ index.php?pag=$2 mais não pega o valor na pag

Compartilhar este post


Link para o post
Compartilhar em outros sites

continua não dando certo, sera que pode ser alguma configuração no .htaccess que ta faltando, do outro jeito funciona legal mais quando coloca parte da url no caso novidades não funciona

Compartilhar este post


Link para o post
Compartilhar em outros sites

O engraçado é que aqui funcionou perfeitamente...

 

htaccess:

Order allow,deny
Allow from all
RewriteEngine On
RewriteRule ^novidades\/([0-9]+)\/$ index.php?n=$1

index.php:

<?php
echo $_GET['n'];
?>

url:

http://localhost/novidades/12/

Imprimiu 12 legalzinho...

Reveja o que você está fazendo...e de uma estudada em expressões regulares...

Abraço!

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.