Ir para conteúdo

POWERED BY:

Arquivado

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

Jéssica Schissato

[Resolvido] Url Amigável

Recommended Posts

Olá,

Estou com uma dúvida de url amigável na página de listagem de produtos de uma determinada categoria

 

tenho no httpd.ini:

RewriteRule ^/novo/([0-9]+)/([a-z,0-9,_-]+) /novo/produtos/default.asp\?cod=$1 [I,L]

Exemplo: /novo/10/categoria1 (/novo/produtos/default.asp?cod=10)

 

 

Até aí tudo bem, mas essa página tem paginação e gostaria q ficasse semelhante ao do submarino e lojas americanas:

 

/novo/10/categoria1?page=1&order=nomeCrescente®=20

 

Mas já tentei de várias formas e não está funcionando. Tentei assim:

RewriteRule ^/novo/([0-9]+)/([a-z,0-9,_-]+)?page=([0-9]+)&order=([a-z,0-9,_-]+)®=([0-9]+) /novo/produtos/default.asp\?cod=$1&page=$3&order=$4®=$5 [I,L]

e não funciona! Alguém sabe como resolver?

 

Obrigada,

Jéssica Schissato

Compartilhar este post


Link para o post
Compartilhar em outros sites

ele gera algum erro ???

 

exite um tópico no fórum ,um tutorial exploivando os procedimentos....

pode te ajudar, faça uma pesquisa,....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não gera erro, mas não consegue encontrar a página...

 

Já li todos os tópicos de url amigável. Separando as experessões por barras funciona certinho...

 

Eu estava fazendo a paginação separando por barra também e funcionava:

RewriteRule ^/novo/([0-9]+)/([a-z,0-9,_-]+)/([0-9]*)/?([a-z,0-9,_-]*)/?([0-9]*)/? /novo/produtos/default.asp\?cod=$1&page=3&order=$4®=$5 [I,L]

Exemplo: /novo/10/categoria1/1/nomeCrescente/20/ em que após a categoria eram todos opcionais

 

Mas por alguns motivos, tive que mudar pra estrutura da qual comentei antes: /novo/10/categoria1?page=1&order=nomeCrescente®=20

Não consigo fazer dessa maneira =/

 

Obrigada

Compartilhar este post


Link para o post
Compartilhar em outros sites

RewriteRule ^/novo/([0-9]+)/([a-z,0-9,_-]+)?page=([0-9]+)&order=([a-z,0-9,_-]+)®=([0-9]+) /novo/produtos/default.asp\?cod=$1&page=$3&order=$4®=$5 [i,L]

 

[a-z,0-9,_-]

 

[a-z0-9_-] nao separe com virgulas

 

 

 

 

 

 

se nao rodar, mantenha sem as virgulas e troque o ? por uma / so pra testar, acho que esse ? fora do () esta dando pau

Compartilhar este post


Link para o post
Compartilhar em outros sites

o ? indica que o que esta antes dele é opcional

 

 

 

 

teste assim, troque o que estiver apos o ? por este abaixo

 

?(page=[0-9]+)(&order=[a-z0-9_-]+)(reg=[0-9]+) /novo/produtos/default.asp\?cod=$1&page=$3&order=$4®=$5 [i,L] 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Testei como você disse, mas não funcionou:

RewriteRule ^/novo/([0-9]+)/([a-z0-9_-]+)?(page=[0-9]+)(&order=[a-z0-9_-]+)(reg=[0-9]+) /novo/produtos/default.asp\?cod=$1&page=$3&order=$4®=$5 [I,L]

o & aparece só antes do order??

Compartilhar este post


Link para o post
Compartilhar em outros sites

seria como um limitador, obrigando a ser desse formato

 

se você copiou exatamente o que colei, desculpe, comi uma letra hehehehe

 

 

 

 

faltou o & que esta em negrito, troque e ponha pra rodar

 

?(page=[0-9]+)(&order=[a-z0-9_-]+)(&reg=[0-9]+) /novo/produtos/default.asp\?cod=$1&page=$3&order=$4®=$5 [i,L]

Compartilhar este post


Link para o post
Compartilhar em outros sites

Imaginei msm haha

eu testei com esse outro & também...e não funcionou

 

RewriteRule ^/novo/([0-9]+)/([a-z0-9_-]+)?(page=[0-9]+)(&order=[a-z0-9_-]+)(®=[0-9]+) /novo/produtos/default.asp\?cod=$1&page=$3&order=$4®=$5 [i,L]

 

o ? deve ficar sem ( ) mesmo?

do jeito que está acima não está indicando que é opcional como você tinha dito?

Compartilhar este post


Link para o post
Compartilhar em outros sites

o ? indica que o que esta antes é opcional, apenas, nao trata como obrigatorio

 

(page=[0-9]+) determina que seja page=numero

 

vou rodar seu codigo aqui pra ver

Compartilhar este post


Link para o post
Compartilhar em outros sites

rodou aqui

 

RewriteRule ^/novo/([0-9]+)/([a-z0-9_-]+)(page=[0-9]+)(&order=[a-z0-9_-]+)(®=[0-9]+) /teste.asp?cod=$1&page=$3&order=$4®=$5 [i,L]

 

so que você esa usando a ? como parametro de querystring?!?!

 

 

 

 

ele nao aceita o ? nem # nem caracter especial como separador, pq nao tenta usar uam barra?

 

RewriteRule ^/novo/([0-9]+)/([a-z0-9_-]+)/(page=[0-9]+)(&order=[a-z0-9_-]+)(®=[0-9]+) /teste.asp?cod=$1&page=$3&order=$4®=$5 [i,L]

 

http://localhost/novo/9/3/page=3&order=2

Compartilhar este post


Link para o post
Compartilhar em outros sites

então

antes eu fazia toda a paginação com barra entre os parametros

Mas tive q deixar de usar barra por causa de problemas entre as categorias e subcategorias

e percebi q o submarino e lojas americanas fazem nessa estrutura : ..10/categoria?page=1&order.... provavelmente pelo msm problema da url entre as categorias e subcategorias que eu tive

 

o ? seria mais pra manter a estrutura, não precisa ter função alguma

não tem como colocar pra ser interpretado apenas como um caractere comum sem função alguma na expressão regular?

Compartilhar este post


Link para o post
Compartilhar em outros sites

o pouco que testei não me permitiu usar dessa forma, tb tentei implementar usando #, mas tb nao deu

 

estava fazendo testes, mas deu erro no isapi e meu IIS caiu, nao posso testar agora

 

 

 

 

você pode tentar mascarar uma pagina em ASP, ocultando a extensão, talvez assim você mantenha a estrutura

Compartilhar este post


Link para o post
Compartilhar em outros sites

se tivesse como escapar o ? ficaria 100%

mas já tentei escapar ele com \ e não funciona também

 

Aeeee funcionou!

 

consegui escapar o ? e ficou assim:

RewriteRule ^/novo/([0-9]+)/([a-z,0-9,_-]+)\?page=([0-9]+)&order=([a-z,0-9,_-]+)®=([0-9]+) /novo/produtos/default.asp\?cod=$1&page=$3&order=$4®=$5 [I,L]

Obrigada pela ajuda desisto!!

Abraços

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.