Sua diretiva parece OK, exceto se estiver em .htaccess , então você precisará remover o prefixo de barra do padrão RewriteRule . Por exemplo:
RewriteRule ^forums/(.+)/(.+)\[(.+)\](.+)/(.+)$ /forums/$1/$2$3$4/$5 [R=301,L]
As diretivas RewriteRule em um contexto diretório (que inclui .htaccess ) correspondem ao caminho da URL menor que o prefixo do diretório . O prefixo de diretório sempre termina com uma barra, portanto, o caminho da URL com o qual o padrão RewriteRule é iniciado nunca começa com uma barra.
Você pode precisar adicionar o L flag se você (planeja) tiver mais diretivas. (Eu também alterei o primeiro grupo capturado de .* para .+ , pois uma correspondência de largura zero aqui é impossível.
ATUALIZAÇÃO:
The htaccess where I put this code is in
/directory. There is also.htaccessin/forumsdirectory
Se houver um arquivo .htaccess existente no subdiretório /forums que também usa o mod_rewrite, então (por padrão) isso substituirá completamente a diretiva acima (no seu arquivo root .htaccess ). A diretiva acima não será processada.
A maneira mais fácil de resolver isso é mover a diretiva acima para o arquivo /forums/.htaccess (próximo ao topo). Como esse redirecionamento é específico para o fórum, essa também parece ser a abordagem mais lógica. No entanto, você também precisa alterar o padrão RewriteRule para ler:
RewriteRule ^(.+)/(.+)\[(.+)\](.+)/(.+)$ /forums/$1/$2$3$4/$5 [R=301,L]