Erilton 0 Denunciar post Postado Abril 22, 2011 Pessoal, estou quase surtando... lá se vão 2h47 que tento resolver isso e tenho certeza que será uma coisa boba, rsrs Estou com o wampserver instalado e habilitado o mod_rewite O htaccess está funcionando corretamente. Não sou nenhum expert em expressões regulares, por isso estou apanhando. Situação: Preciso remover a barra no final da URL, porém, sem a barra as expressões que eu testei não interpreta como eu preciso. No index eu pego a variavél $x e faço uma busca no banco (index.php?x=palavra) Colocando barra no final (localhost/teste/), funciona corretamente, recupero via $_GET['x'] e printo na tela "teste". Agora se eu retirar a barra no final (localhost/teste) dá NOT Found The requested URL /teste/ was not found on this server. Via .htaccess tentei de várias formas, até redirect para raiz, mas não deu certo. Então vou deixar o que usei como padrão no início, com barra no final: RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(!.(\.gif|\.jpg|\.png|\.css|\.js|\.txt|\.php|\.htm|\.html)|.+[^/])$ /$1/ [L] RewriteRule ^(.+)$ index.php?x=$1 Se alguém já passou por isso e/ou souber me ajuda, ficarei imensamente agradecido! Até +!! Compartilhar este post Link para o post Compartilhar em outros sites
Bruno Augusto 417 Denunciar post Postado Abril 22, 2011 Também não sou expert, mas experimenta trocar suas duas RewriteRules's por: RewriteRule !\.(js|ico|gif|jpg|png|css|txt|html|html)$ [NC] RewriteRule (.*?)$ index.php?x=$1 [L] Deixa eu tentar explicar. Na primeira linha você define quais extensões devem ser ignoradas. Veja que fiz mais simples: Defini oponto literal uma vez e usei um grupo com vários condicionais. Na segunda, toda requisição que não tenha caída na condição anterior é redirecionada para a index.php. Se funcionar a contento, acredito que os responsáveis seja a flag NC (Next Condition), que vai filtrar a próxima condição, marcada como L (Last). Compartilhar este post Link para o post Compartilhar em outros sites
Erilton 0 Denunciar post Postado Abril 22, 2011 Bruno Augusto, muito obrigado pela ajuda, mas infelizmente ainda não deu certo. Isso aconteceu comigo em alguns dos testes que fiz, ele printa agora "index.php" como se fosse minha variável. Tentei passar forçando a variável... pelo menos eu usaria substr, mas não deu certo. Bom, agora ele entende sem a barra, mas a variável ele esta ignorando. :( Tem mais alguma orientação? Compartilhar este post Link para o post Compartilhar em outros sites
Erilton 0 Denunciar post Postado Abril 22, 2011 Bruno e pessoal, resolvido. Apenas retirei os tramentos por arquivo, para ajudar outras pessoas que venham parar nesse post, segue correção que funcionou comigo: RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?x=$1 Lembrando que alguns servidores pode dar erro ao receber a variável vazia, sugestão é criar uma condição, se estiver vazio assume index.php, senão, executa ação. Até + Compartilhar este post Link para o post Compartilhar em outros sites
Bruno Augusto 417 Denunciar post Postado Abril 23, 2011 Então, mas você concorda comigo que não faz sentido Compartilhar este post Link para o post Compartilhar em outros sites