私が理解していないように見えるインターネットを介して検索しているフラグがいくつかあります。
[E] フラグはいつ使用しますか?
例えば。
RewriteRule \.jpg$ - [env=dontlog:1]
それは何をしますか...?
NS (後続の要求なし) はどのように機能しますか? 私のphpファイルに多くのインクルードがある場合、動作を止めないようにNSに配置する必要がありますか? それは何の役に立ちますか?
そのルールが一致すると ( \.jpg%
)、環境変数dontlog
に の値が設定されます1
。
後で、それがどのように使用されるかについて最も可能性の高いシナリオは、Apache 構成が、CustomLog
その環境変数を読み取り、設定時にログ ファイルに行を書き込まないディレクティブを定義することです。したがって、.jpg
イメージ ファイルの要求は Apache ログに書き込まれません。
例えば:
# Log any request that doesn't have a dontlog variable set...
CustomLog logs/access_log common env=!dontlog
mod_rewrite のドキュメントには、環境変数に関する情報が少しあります。
上記のドキュメントから直接:
次の例では、要求された URI がイメージ ファイルの場合、'image' という環境変数を値 '1' に設定します。次に、その環境変数を使用して、それらのリクエストをアクセス ログから除外します。
RewriteRule \.(png|gif|jpg) - [E=image:1]
CustomLog logs/access_log combined env=!image
書き換えが機能しない理由についての質問に答えるには、最初のルールがリクエストを index.php から target.php に書き換えるためです。したがって、リクエストされたファイルが index.php ではないため、2 番目のルールは起動しません。
コメントは、環境変数フラグに対する回答をすでに提供しています。