Bạn có thể sử dụng Include
chỉ thị httpd.conf
để có thể duy trì chuyển hướng trong một tệp khác. Nhưng nó sẽ không hiệu quả lắm, vì mọi yêu cầu sẽ cần phải được kiểm tra đối với nhiều biểu thức thông thường. Ngoài ra, một máy chủ khởi động lại sẽ được yêu cầu sau mỗi thay đổi trong tệp.
Một cách tốt hơn cho rất nhiều chuyển hướng sẽ là sử dụng chỉ thị loại RewriteMapdbm
để khai báo bản đồ từ URI sang chuyển hướng. Bằng cách này, nó sẽ hiệu quả, vì việc tra cứu dbm rất nhanh và sau khi thay đổi bản đồ, bạn sẽ không cần phải khởi động lại máy chủ, vì httpd
kiểm tra thời gian sửa đổi tệp bản đồ.
Một quy tắc viết lại sẽ trông như thế này (được thử nghiệm trên máy tính Fedora 16 của tôi):
RewriteEngine On
RewriteMap redirects dbm=db:/etc/httpd/conf/redirects.db
RewriteCond ${redirects:$1} !=""
RewriteRule ^(.*)$ ${redirects:$1} [redirect=permanent,last]
Và bản đồ dbm sẽ được tạo từ bản đồ văn bản /etc/httpd/conf/redirects.txt
trông như thế này:
/foo http://serverfault.com/
/bar/lorem/ipsum/ http://stackoverflow.com/
sử dụng một lệnh
httxt2dbm -f db -i /etc/httpd/conf/redirects.txt -o /etc/httpd/conf/redirects.db