คุณสามารถใช้Include
คำสั่ง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 จะถูกสร้างขึ้นจาก text map ซึ่งมี/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