Вы можете использовать Include
директиву in, httpd.conf
чтобы иметь возможность поддерживать перенаправления в другом файле. Но это было бы не очень эффективно, поскольку каждый запрос должен был бы проверяться по множеству регулярных выражений. Кроме того, перезагрузка сервера потребуется после каждого изменения в файле.
Лучшим способом для такого количества перенаправлений было бы использование директивы типа RewriteMapdbm
для объявления карты от URI до перенаправлений. Таким образом, это будет эффективно, так как поиск в dbm выполняется очень быстро, и после изменения карты вам не нужно перезапускать сервер, так как httpd
проверяется время модификации файла карты.
Правила переписывания выглядят так (проверено на моем компьютере с Fedora 16):
RewriteEngine On
RewriteMap redirects dbm=db:/etc/httpd/conf/redirects.db
RewriteCond ${redirects:$1} !=""
RewriteRule ^(.*)$ ${redirects:$1} [redirect=permanent,last]
И карта DBM будет создана из текстовой карты, которая /etc/httpd/conf/redirects.txt
выглядит следующим образом:
/foo http://serverfault.com/
/bar/lorem/ipsum/ http://stackoverflow.com/
используя команду
httxt2dbm -f db -i /etc/httpd/conf/redirects.txt -o /etc/httpd/conf/redirects.db