Como descartar uma barra do meio de uma URL com uma string de consulta?

1

Eu tenho alguns redirecionamentos de domínio que apontam para uma página no meu servidor, e eles colocam uma barra após o nome do arquivo, mas antes da string de consulta. Então isso:

link

… torna-se isto:

link

… em vez disso:

link

Então, como eu derrubo essa barra no meio da URL enquanto preservo a string de consulta? Eu tentei algumas abordagens de .htaccess , mas nada parece funcionar. A tentativa mais recente foi:

RewriteRule ^(.+)html/(.+)$ /$1html$2 [R=301,L]

[ATUALIZAÇÃO: essa regra não funcionou, então a desabilitei e agora não há reescritas em vigor.] Eu não tenho muita experiência com mod_rewrite , como você pode ter adivinhou. Qualquer ajuda muito apreciada!

    
por Eric A. Meyer 13.02.2013 / 05:41

2 respostas

3

O mod_rewrite do Apache não combina com a string de consulta em seu RewriteRules. Você nem precisa do QSA se não estiver redirecionando para um URL com uma string de consulta especificada. Eu testei isso localmente no Apache 2.2.22 (versão nativa do OS X Lion) e funcionou.

RewriteRule ^(.+)html/$ /$1html [R=301,L]

EDIT: Se você está colocando o .htaccess no diretório gmap, você terá que usar o seguinte:

RewriteEngine On
RewriteBase /eric/tools/gmap/
RewriteRule ^(.+)html/$ $1html [R=301,L]
    
por 13.02.2013 / 17:08
0

Use o sinalizador QSA ("Consultar String Append") em vez de tentar analisá-lo por conta própria. Algo como:

RewriteRule ^(.+)html/(.+)$ /$1html [R=301,L,QSA]

    
por 13.02.2013 / 17:03