Tenho um site que está sendo redirecionado de um host antigo. Não consigo alterar o redirecionamento do host antigo.
O problema é que o redirecionamento acrescenta uma barra final quando não é apropriado. Exemplo: http://example.com/picture.jpg/
ou http://example.com/page.html/
.
Isso está fazendo com que meu servidor retorne um 404.
Idealmente, eu corrigiria o redirecionamento do site antigo, mas não consigo.
Existe uma maneira de remover a barra final no final do URL? Este é um site que não é complexo (html simples, sem linguagens de script, etc.).
Procurei e não consegui encontrar uma solução existente.
Responder1
Você poderia fazer algo como o seguinte para remover a barra final de qualquer URL que termine com uma extensão de arquivo ( ,,, .jpg
etc. ).html
.png
RewriteEngine On
RewriteRule ^/?(.+?\.[a-z]{2,4})/$ /$1 [R=302,L]
Altere 302 (temporário) para 301 (permanente) somente depois de testar se funciona bem (evite problemas de cache).
ATUALIZAR:http redirecionou para https, e https reescreveu a barra final engraçada.
Se todos esses links forem direcionados apenas para HTTP (não HTTPS), faria sentido executar esse redirecionamento apenas no HTTP vHost e redirecionar diretamente para HTTPS também. Por exemplo:
RewriteRule ^/(.+?\.[a-z]{2,4})/$ https://example.com/$1 [R=302,L]
(Embora seja concedido, se estiver no vHost para HTTPS, ele capturará todas as solicitações.)