Como posso usar mod_rewrite para remover tudo depois do? (ponto de interrogação) em um URL? [duplicado]

1

Como posso usar o mod_rewrite para remover tudo depois do? (ponto de interrogação) em um URL?

Por exemplo: http: // 127.0.0.1/ALL_FILES.php?test=1 depois do mod_rewrite: http: // 127.0.0.1/ALL_FILES.php

Para php isso significa que o $ _GET super global estará sempre vazio.

Obrigado.

    
por Rook 05.01.2010 / 08:45

2 respostas

1
RewriteCond %{QUERY_STRING} .+
RewriteRule ^(.*)$ /$1? [R=301,L]
    
por 15.02.2010 / 18:30
5

Citações do mod_rewrite docs:

The Pattern will not be matched against the query string. Instead, you must use a RewriteCond with the %{QUERY_STRING} variable

Algo ao longo das linhas de:

 RewriteCond %{QUERY_STRING} .
 RewriteRule ^/index.php /index.php? [L,R]

deve fazer o que você precisa. Se você não se importa com o que é exibido para o usuário, mas apenas com o que é passado para php, você pode deixar de fora o sinalizador R.

    
por 05.01.2010 / 09:15