RewriteCond %{REQUEST_FILENAME} !-f RewriteRule "^/(.*)" "/" [L]
Sua condição , verificando se a solicitação não mapeia para um arquivo existente, parece estar correta. No entanto, o RewriteRule
não redireciona , ele reescreve internamente a solicitação. Também parece acionar um loop de reescrita (erro 500)?
Tente o seguinte:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^/. / [R=302,L]
O sinalizador R
é necessário aqui para acionar um redirecionamento externo . Isso só redirecionaria /<something>
, em vez de /<anything>
, como em seu código original.
Altere o redirecionamento 302
(temporário) para 301
(permanente) quando tiver certeza de que isso está funcionando bem - se isso for necessário. Faz testes mais fáceis, já que os 301s são armazenados em cache hard pelo navegador.
Isso também pressupõe que isso esteja na configuração principal do servidor, não em .htaccess
ou <Directory>
section.