Você pode usar a Include
diretiva httpd.conf
para manter os redirecionamentos em outro arquivo. Mas isso não seria muito eficiente, pois cada solicitação precisaria ser comparada com muitas expressões regulares. Além disso, seria necessário reiniciar o servidor após cada alteração no arquivo.
Uma maneira melhor para tantos redirecionamentos seria usar a diretiva RewriteMap do tipo dbm
para declarar um mapa dos URIs para redirecionamentos. Dessa forma, será eficiente, pois as pesquisas no 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 do mapa.
As regras de reescrita seriam assim (testadas 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
assim:
/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