2009-03-25 12 views
7

簡単な質問です。 .htaccessに何個のRewriteRulesがあるかについての制限がありますか、それともApacheを使わずにそこにたくさんのファンキーを置くことができますか?.htaccessに問題なくRewriteRulesをいくつ持てますか?

繰り返し処理するルールが多いため、サーバーが単純に潜む相対的な制限はありますか?

ありがとうございます!

答えて

3

RewriteRulesにいくつかの既存ファイル(-F)または既存のURL(-U)フラグが含まれている場合は、それらがサブリクエストであるため、パフォーマンスが低下する可能性があります。それらの外では、いくつかのRewriteRulesがパフォーマンスに悪影響を及ぼし始め、現在の実装では十分な量がある状況を経験していません。

すべてのRewriteRulesを繰り返し処理する必要性を制限するには、より高価なチェックが(可能であれば)プロセスの中で後で行われるようにするだけで、以前の条件では短絡が発生する可能性がありますあなたのロジックを書き直し、より高価なルールの計算を後でそのプロセスに保存することができます。

6

あなたは.htaccess configuration files are being processed on every requestを知る必要があります。

1000個のルールを持つ.htaccessファイルがある場合、最悪の場合は、リクエストがこのディレクトリにヒットするたびに1000個のルールがテストされます。

したがって、できるだけ早くルールと要求が一致する構造を使用する必要があります。より頻繁なリクエストを処理するルールは、頻度の低いリクエストの前に表示され、処理が決定されます(L flag参照)。 ruleset processingについて、ルールの処理方法をご確認ください(RewriteLogLevel direcitveも参照)。

もう1つの要因は正規表現です。あいまいなものや複雑なものよりも単純で効率的な正規表現を使用する方がよい。あなたは、高価なものを避けてそれらを最大限に活用するために、正規表現がどのように解釈され、処理されるかを調べるべきです。

関連する問題