Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Fala galera, estamos desenvolvendo um TCC bem bacana e eu sou responsável por toda a parte web. Graças a Deus está tudo bem e tudo em dia.
Estou desenvolvendo um e-commerce um pouco mais simples do que os grandes sistemas que há na internet, o nosso é apenas para "dar sentido" ao nosso tema que é SAC.
Eu criei uma página de produto. Essa página recebe um parâmetro na URL, esse parâmetro é resgatado, via GET obviamente, é feita uma consulta no banco com o valor passado e todo o conteúdo é gerado na página produto, tudo está funcionando muito bem.
A URL está sendo gerada dessa maneira:
http://localhost/MeuSite/Produto.php?ID=1Já dei inúmeras googladas e não consegui resolver, eu queria que essa URL acima ficasse amigável modificando o .htaccess e fosse gerada da seguinte maneira:
http://localhost/MeuSite/Produto/1É isso, se alguém puder dar uma luz para eu poder modificar o .htaccess para que o browser interprete esse formato de URL, eu agradeceria muito.
Desde já muito obrigado a todos.
RewriteEngine On
RewriteRule ^produto/([0-1]+)/? produto.php?id=$1
toda expressão regular dentro de uma url amigável se torna uma váriavel acessível por $ + sua possição na string final
>
RewriteEngine On
RewriteRule ^produto/([0-1]+)/? produto.php?id=$1
toda expressão regular dentro de uma url amigável se torna uma váriavel acessível por $ + sua possição na string final
cara , se a pessoa digitar na url ainda produto.php?id=1
ela aceita
teria como bloquear essa forma digitando esse produto.php?id=1 ????
Uma boa alternativa pode ser redirecionar todas as solicitações para o PHP e de lá tratar a URL solicitada para decidir o que fazer.
No arquivo ".htaccess", supondo que você esteja usando Apache:
RewriteEngine On
RewriteRule (.*) router.php [QSA,L]
O script acima vai direcionar todas as solicitações para um arquivo chamado "router.php", dentro dele você pode usar a super global "$_SERVER['REQUEST_URI']" para saber qual diretório está sendo acessado.
Agora no arquivo "router.php" vamos tratar a solicitação:
<?php
Caso o site fique em uma pasta
Retiramos o que vem antes do diretório do nosso site
$uri = str_replace(SITE_ROOT, '', $uri);rtrim Para prevenir elementos vazios no explode
$uri = rtrim($uri, '/');Dividimos tudo entre barras em uma array
$param = explode('/', $uri);O arquivo é o primeiro parâmetro
$file = $param[0] . '.php';Arquivo existe?
if(!file_exists($file)) {Rodamos o script solicitado
include_once($file);Agora a variável "$param" guarda tudo que foi digitado na URL em uma array.
Obviamente tem como deixar o script bem mais sofisticado, para que tornar a array "$param" associativa semelhante a "$_GET", mas dei apenas uma ideia de como fazer.
Obs.: Para o ".htaccess" funcionar pode ser necessário ativar a mod_rewrite.