Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
E ai galera...
Lá vou eu denovo com meus problemas de Regex...
Eu to fazendo um site no qual a pessoa precisa digitar o CPF e ai eu vou abrir o usuário dele para ele poder fazer download das coisas que o CPF dele está inscrito
Formatar o CPF e tals e salvar no banco é mole...
Agora quando eu vou buscar o usuário
Minha url será: http://www.site.com/user/123.123.123-12
Bom em teoria seria fácil... ai eu fiz ó regex no HTACCESS assim:
RewriteRule ^user/([0-9]{3}\.){2}[0-9]{3}-[0-9]{2}/$ /user?u=$1 [QSA]
Só que não deu certo...
ele não converte para
http://www.site.com/user/123.123.123-12/
Tbm tentei outras variações como:
RewriteRule ^user/([0-9\.-]+)/$ /user?u=$1 [QSA]
RewriteRule ^user/([0-9]{3}\.[0-9]{3}\.[0-9]{3}-[0-9]{2})/$ /user?u=$1 [QSA]
RewriteRule ^user/([0-9]\.[0-9]\.[0-9]-[0-9]+)/$ /user?u=$1 [QSA]
RewriteRule ^user/([0-9]+)/$ /user?u=$1 [QSA]
Mas nenhuma das 4 rola.....
Alguem ai saberia me dizer como formatar??
Abraços
Os caracteres não são especiais... são url amigaveis.
O que você informou ([0-9\.-]+) também não funcionou
O fato é que eu preciso do get para pegar o usuário e comparar com meu banco de dados.
isso é uma técnica muito comum e utilizada em diversos sites.
Eu tenho um rewrite parecido:
RewriteRule ^eventos/([0-9]+)/$ /eventos?e=$1 [QSA]
Que funciona como eu quero
você colocar
site.com/eventos/10
E ele vai para o evento 10 de acordo com o $_GET['e'];
Eu queria fazer a mesma coisa só que com usuário
Só que estou vendo que ta complicado o fato de colocar os numeros... to achando mais fácil desformatar o numero... e depois na hora da busca formatar novamente.
Abraços
Parece que você se esqueceu de escapar o '-' (traço)
eu entendi o que você quer
o que eu quis te mostrar é que não faz diferença chegar ao valor desejado por GET, POST, PUT ou simplesmente redirecionando e tratando a URL pelo PHP mesmo
só que pelo PHP isso te dá muito menos trabalho, é como os grandes frameworks geralmente fazem
os "caracteres especiais" que eu quis dizer são o hífen e o ponto, por que não utilizar somente números?
todos os exemplos que te mandei foram testados aqui e funcionaram
Cabei usando numero inteiro mesmo depois formato com php ;)
Em todo o caso coloquei tbm assim:
RewriteRule ^user/([0-9]\.\-+)/$ /user?u=$1 [QSA]
E tbm não resolveu rs...
Aiai fica pra uma proxima...
Abraços e obrigado aos que ajudaram
vou te ajudar porque berserk é um clássico:
o que você tá tentando fazer é:
RewriteEngine On
RewriteRule ^user/([0-9\.-]+) ./teste.php?u=$1
mas eu faria diferente
por que receber os parâmetros por GET? tem algum motivo específico?
RewriteEngine On
RewriteRule .* teste.php
desse jeito, voce redireciona o cara de qualquer maneira pra pagina teste.php, e lá dentro você pega pelo php mesmo a URL e trata como quiser (usando alguma variavel de servidor, como REDIRECT_URL ou REQUEST_URI)
claro que esse .* vai pegar TUDO, até imagem, css, js... ai fica a seu criterio o filtro que vai fazer no ambiente
e o poder do rewrite ainda é maior:
RewriteEngine On
RewriteRule ^user/([0-9\.-]+) ./teste.php [E=CPF:$1]
outro detalhe, por que usar caracteres especiais na url? somente numeros seria bem mais eficiente