0

RewriteRuleがMOD_Rewriteによって実行されると、新しく生成された要求に対してすべてのMOD_Rewriteルールが再度実行されますか?特に次の例では、これによりループが発生しますか?

RewriteCond Host:  (?:www\.)?mysite\.com
RewriteRule ^(.*)$ $1 [QSA,L]
4

1 に答える 1

3

あなたの場合、それはとにかくループをしません。「L」スイッチをオンにして、その特定のルールを最後のルールとして修正します。

さらに、「N」または「NS」スイッチを使用して次の反復を明示的に強制する必要があります。そうしないと、ルールファイル内を移動して、一致する最後のルールで停止します。ドキュメントから:

N(次の反復)

書き換えエンジンにルールのターゲットを変更させ、ルールチェックを最初から再開します(すべての変更が保存されます)。再起動の回数は、RepeatLimitディレクティブで指定された値によって制限されます。この数を超えると、Nフラグは単に無視されます。

NS(同じルールの次の反復)

Nフラグのように機能しますが、同じルールからルール処理を再開します(つまり、ルールアプリケーションの繰り返しを強制します)。単一ルールの反復の最大数は、RepeatLimitディレクティブによって指定されます。ただし、単一のルールの繰り返しの数は、グローバルな繰り返しの数にはカウントされません(つまり、Nフラグによって引き起こされる反復の数の繰り返し制限は、NSによって引き起こされる繰り返しの数とは無関係です)。

于 2008-10-23T12:10:09.860 に答える