Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom normalmente eu que respondo mais hoje é minha vez de perguntar :)
Eu to com um problema que não é problema... o cliente não reclamou sobre... mas eu não gostei do resultado do meu código.
Eu fiz um site em WORDPRESS mas a pergunta não é de wordpress e sim htaccess
Eu tenho meus links normalmente assim:
http://www.exemplo.com/categoria/nome-do-post
Ou
E o que eu to querendo fazer é o seguinte:
http://www.exemplo.com/profile?id=1
virar:
http://www.exemplo.com/profile/1
Detalhe que profile é uma página que eu to passando os dados via GET para que eu possa verificar se o profile existe ou não... e então mostrar a página da pessoa
Eu tenho meu HTACCESS padrão assim:
Lembrando que isso é o padrão do wordpress para que se possa utilizar %post%/%category%/
Ou whatever para ficar com uma url bunitinha e não aquela coisa pavorosa:
www.exemplo.com/?p=123
Bom sabendo disso tudo... eu fui lá feliz da vida alterar minha url no htaccess
Sabendo que se eu tiver:
http://www.exemplo.com/productinfo.php?prodID=12
E eu fizer:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^products/([0-9][0-9])$ /products/$1/ [R]
RewriteRule ^products/([0-9][0-9])/$ /productinfo.php?prodID=$1
</IfModule>
Eu vou ter uma url assim:http://www.exemplo.com/products/12/
Que URL linda :)
Mas voltando ao meu problema
Eu quero fazer algo assim:
http://www.exemplo.com/profile?id=1
virar
http://www.exemplo.com/profile/1
Então eu tentei usar a seguinte regra:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} ^profile/
RewriteRule ^profile/([0-9][0-9])$ /profile?id=$1
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
Só que no final das contas... nada aconteceu minha url continua aparecendo pra mim assim:
http://www.exemplo.com/profile?id=1
Alguem tem alguma sugestão???
De mudança talvez na regra... pode ser que minha regra esteja errada... sei lá
Qualquer ajuda já é válida e bem vinda...
Lembrando que já fiz varios mixes de combinações... e n tive sucesso
Só que agora não lembro todas as opções...
Quem puder ajudar já agradeço
Abraços
Se o redirecionamento está funcionando como você acha que está, verifique os valores em $_SERVER:
Deve ter um valor para $_SERVER["REDIRECT_URL"] e o valor de $_SERVER["REQUEST_URI"] deve ser igual a "/profile?id=4".>
$_GET['id'] vem vazio mesmo eu passando um valor
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} profile/
RewriteRule profile/([1-9]?[0-9]+)$ /profile?id=$1
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]
Vlw NETO!!!
:P era isso mesmo...
Sabia que era alguma porcaria da minha regex :(
Eu ainda to estudando isso... ai vivo fazendo bobagem :)
Rola de eu fazer isso aqui né:
RewriteRule profile/([1-9]?[0-9]+)$/(.*) /profile?id=$1
Pra adicionar um nome por exemplo se eu quiser?
Acho que não da pipino se fizer isso ou será que da?
De qualquer forma ta resolvido o problema :)
Brigadão
Abraços
Só um feedback:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} ^profile/
RewriteRule profile/([1-9]?[0-9]+)$/ /profile?id=$1
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
Estava funcionando corretamente para 2 casas decimais...
Então mudei para:
RewriteRule profile/([0-9]+)$ /profile?id=$1
E agora tudo funciona.
Abraços
Ok eu entendi meu problema errado rs :P
Meu problema não ta no rewrite... ele realmente ta dando o redirect para onde eu queria...
O que eu não consigo fazer é pegar a ID com $_GET na pagina profile/4
Se eu fizer
Alguma sugestão?
Abraços