本当にあなたのrewriteRulesを投稿するべきです。
私たちができることは確かです。私が考えている最初のことは、rewriteRulesと一致する環境変数を設定することです(以前のものを逆にしてrewriteCondのセットを作成する)。[E=myvar:myvalue]
タグを使用します。ヘッダー命令[env=myvar]
の最後に使用可能な引数を使用して、このヘッダーを条件付きで設定します。
は、次に、あなたが言った:
は、.htaccessファイルを使用せずにそれを行うのいずれかの方法はありますか?
まあ、RewriteRulesと.htaccessファイルは大雑把に関係しています。 .htaccessに設定したものはどれも、ApacheのIO操作を防ぐためにVirtualHostにという素晴らしい指示があり、それぞれのリクエストで.htaccessファイルを読み込もうとすると、実際にはうまく収まるでしょう。
2つ目は、あなたが言った:私は
まあ(Lフラグを使用しています)のRewriteRule Afterヘッダに設定ディレクティブを配置しようとした
[L]
フラグがオンで、いくつかのRewriteRulesを防ぎます同じディレクトリが順番に適用されるため、今すぐdirecltyにはチェーンされません。しかし、実際にrewriteRuleが終了した後([L])、rewriteRuleの出力はディレクトリに再適用され、RewriteRule(同じものかもしれません)がまだ適用されているかどうかを確認します。
このため、内部リダイレクトメッセージが多すぎることがあります。
VirtualHostでRewriteLog /a/file.log
とRewriteLogLevel 9
を使用する唯一の方法があります(多くの驚きがありますが、一部のルールでは再帰が多すぎる場合があります)。
そのために知られていると良いのRewriteCondは次のとおりです。
RewriteCond %{ENV:REDIRECT_STATUS} ^$
このするRewriteCondを前に付けどれだけルールが(多分[L]を使用して、ルールの終了後、あなたがディレクトリを入力し、第1の時間を適用されます。またはそれ以上のルールがないため)、結果はディレクトリルールで再テストされますが、変数REDIRECT_STATUSは空ではありません。この条件は、このenv変数が設定されている場合、ルールを避けるようにmod-rewriteに指示します。