次の図は、括弧への参照を理解するためのものです([フラグ]は省略されています)。
括弧を使用すると、括弧内の内容にバックリンクが作成され、%1
および$1
を使用して条件のどこかで使用できます。
画像の出所は、httpd Apache2.2の非公式ドキュメントにあります。
https://publib.boulder.ibm.com/httpserv/manual70/rewrite/rewrite_intro.html#InternalBackRefs
Httpd Apache2.4の公式ドキュメントにはそのような図はありません。
https://httpd.Apache.org/docs/2.4/rewrite/intro.html#InternalBackRefs
この投稿の本質は、私がそれを正しく理解し、httpd Apache2.4で機能するかどうかを確認することです。
誰か知っていますか?
これは、Apache 1.3、2.2、または2.4を使用しているかどうかに関係なく、mod_rewriteがどのように機能するかの基本原則です。つまり、はい、Apache2.4でも同じように機能します。
(IBMの「コピー」(?)に基づいて投稿した図ですが、Apacheの「公式」ドキュメントではなく、RewriteCond
ディレクティブが処理される順序が明確でないため、おそらくあいまいです(青い矢印)。 -ダウンまたはボトムアップ?編集:これは後方参照のみを表すことを明確にしましたが、処理の順序ではありません。)
イメージの出所はhttpdApache2.2のドキュメントにあります
https://publib.boulder.ibm.com/httpserv/manual70/rewrite/rewrite_intro.html#InternalBackRefs
上記のように、これはApache2.2の「公式」ドキュメントではありません。 2.2の公式ドキュメント および Apache 2.4 には、同じ図が含まれています。これらの図と付随するテキストは、上記で概説したのと同じプロセスを説明しています。
IBMドキュメントの図(Apacheドキュメントの初期の「コピー」のように見え、非常に不完全です)には、次の図が含まれています。この図は、ベースになっているように見えます。
その青い線(RewriteRule
patternからupに行く)はあいまいなIMOです-それは一番下の状態が最初ですか、それとも一番上ですか?その図を変更して、処理の順序をもう少し明確にします。例えば: