Puede usar la Include
directiva httpd.conf
para poder mantener las redirecciones en otro archivo. Pero no sería muy eficiente, ya que cada solicitud debería verificarse con muchas expresiones regulares. También sería necesario reiniciar el servidor después de cada cambio en el archivo.
Una mejor manera para tantos redireccionamientos sería utilizar la directiva de tipo RewriteMapdbm
para declarar un mapa desde los URI a los redireccionamientos. De esta manera, será eficiente, ya que las búsquedas de dbm son muy rápidas y, después de un cambio en el mapa, no necesitará reiniciar un servidor, ya que httpd
verifica el tiempo de modificación del archivo del mapa.
Las reglas de reescritura se verían así (probado en mi computadora Fedora 16):
RewriteEngine On
RewriteMap redirects dbm=db:/etc/httpd/conf/redirects.db
RewriteCond ${redirects:$1} !=""
RewriteRule ^(.*)$ ${redirects:$1} [redirect=permanent,last]
Y el mapa dbm se crearía a partir del mapa de texto /etc/httpd/conf/redirects.txt
con este aspecto:
/foo http://serverfault.com/
/bar/lorem/ipsum/ http://stackoverflow.com/
usando un comando
httxt2dbm -f db -i /etc/httpd/conf/redirects.txt -o /etc/httpd/conf/redirects.db