回答:
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
!=との間にスペースを入れることができないため、Httpdは起動しませんでした""。現在、動作するテスト済みのバージョンにサンプルを修正しました。
RewriteMap redirects dbm=db:/etc/httpd/conf/redirects.dbエラーを与えましたRewriteMap dbm type db is invalid。しかし、私が使っRewriteMap redirects txt:/etc/httpd/conf/redirects.txtたときはうまくいきました。プレーンテキストではなく、あなたが説明したように、私はまだハッシュされた方法で行きたいです。しかし、dbmエラーについてはあまり見つけることができませんでした。ご協力いただきありがとうございます。
リストからのリンクだけで新しいVHOSTを生成するスクリプトを作成します。