3000 301リダイレクトのリストがあります。私たちは助けが必要です
ありがとう。
httpd.conf
でInclude
ディレクティブを使用すると、別のファイルでリダイレクトを維持できます。しかし、すべてのリクエストは多くの正規表現に対してチェックされる必要があるため、それはあまり効率的ではありません。また、ファイルを変更するたびにサーバーを再起動する必要があります。
多くのリダイレクトのより良い方法は、タイプdbm
の- RewriteMap ディレクティブを使用して、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
リストからのリンクだけで新しいVHOSTを生成するスクリプトを作成します。