Ви можете використовувати Include
директиву, httpd.conf
щоб мати можливість підтримувати переадресації в інший файл. Але це було б не дуже ефективно, оскільки кожен запит потрібно було б перевірити на безліч регулярних виразів. Також потрібно буде перезапустити сервер після кожної зміни файлу.
Кращим способом для такої кількості переадресацій було б використовувати директиву типу RewriteMap типу, dbm
щоб оголосити карту з 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