Você pode usar a diretiva Include
em httpd.conf
para poder manter redirecionamentos em outro arquivo. Mas não seria muito eficiente, pois cada solicitação precisaria ser verificada em relação a muitas expressões regulares. Além disso, uma reinicialização do servidor seria necessária após cada alteração no arquivo.
Uma maneira melhor para muitos redirecionamentos seria usar a diretiva RewriteMap do tipo dbm
para declarar um mapa de URIs para redirecionamentos. Dessa forma, ele será eficiente, pois as pesquisas de dbm são muito rápidas e, após uma alteração no mapa, você não precisaria reiniciar um servidor, pois httpd
verifica o tempo de modificação do arquivo de mapeamento.
Uma regra de reescrita seria assim (testada no meu computador Fedora 16):
RewriteEngine On
RewriteMap redirects dbm=db:/etc/httpd/conf/redirects.db
RewriteCond ${redirects:$1} !=""
RewriteRule ^(.*)$ ${redirects:$1} [redirect=permanent,last]
E o mapa dbm seria criado a partir do mapa de texto /etc/httpd/conf/redirects.txt
com esta aparência:
/foo http://serverfault.com/
/bar/lorem/ipsum/ http://stackoverflow.com/
usando um comando
httxt2dbm -f db -i /etc/httpd/conf/redirects.txt -o /etc/httpd/conf/redirects.db