Vous pouvez utiliser Include
dans la directive httpd.conf
pour pouvoir gérer les redirections dans un autre fichier. Mais ce ne serait pas très efficace, car chaque requête devrait être vérifiée par de nombreuses expressions régulières. De plus, un redémarrage du serveur serait nécessaire après chaque modification du fichier.
Une meilleure solution pour autant de redirections serait d'utiliser RewriteMap de type dbm
pour déclarer une correspondance entre les URI et les redirections. De cette façon, le système sera efficace, car les recherches dans les bases de données sont très rapides, et après un changement dans la carte, vous n'aurez pas besoin de redémarrer un serveur, comme le font les serveurs de l httpd
vérifie l'heure de modification du fichier de la carte.
Une règle de réécriture ressemblerait à ceci (testé sur mon ordinateur Fedora 16) :
RewriteEngine On
RewriteMap redirects dbm=db:/etc/httpd/conf/redirects.db
RewriteCond ${redirects:$1} !=""
RewriteRule ^(.*)$ ${redirects:$1} [redirect=permanent,last]
Et la carte dbm sera créée à partir de la carte texte. /etc/httpd/conf/redirects.txt
qui ressemble à ça :
/foo http://serverfault.com/
/bar/lorem/ipsum/ http://stackoverflow.com/
en utilisant une commande
httxt2dbm -f db -i /etc/httpd/conf/redirects.txt -o /etc/httpd/conf/redirects.db