ApacheのhtaccessファイルにおけるRewriteCondのルールは何ですか?
.htaccessファイル内のRewriteCondルールは、リライトルールの条件を定義するために使用されます。条件を使って、リライトルールの適用範囲を制限することができます。
RewriteCondの構文は以下の通りです:
RewriteCond TestString CondPattern [flags]
- TestString:テストする文字列は、通常、リクエストのURLから取得されます。TestStringは変数、パターンマッチング、その他の条件を使用して定義できます。
- CondPatternは条件にマッチするためのパターンです。これは正規表現や文字列などのものを使用できます。
- フラッグ(任意):ルールの動作を調整するため、例えばNC(大文字と小文字を区別しない)、L(それ以降のルールの処理を停止する)などのフラッグを追加することができます。
以下是一些常见的使用例:
- HTTPリクエストヘッダーとの条件を一致させる。
RewriteCond %{HTTP_USER_AGENT} GoogBot [NC]
ユーザーエージェント文字列に”GoogBot”が含まれている場合に一致します。
- URLにリクエストする際の使用条件は一致している必要があります。
RewriteCond %{REQUEST_URI} ^/admin
この条件は、URLが”/admin”で始まる場合に一致します。
- 要求的ホスト名と一致する条件を使用します。
RewriteCond %{HTTP_HOST} ^example\.com$
この条件は、要求されたホスト名が”example.com”の場合にマッチします。
- リクエストされたクエリ文字列と一致する使用条件。
RewriteCond %{QUERY_STRING} ^id=123$
このパターンは、要求されたクエリ文字列に”id=123″が含まれている場合に一致します。
RewriteCondの規則は、後続のRewriteRuleと一致する場合にのみ有効になります。後続のRewriteRuleがない場合、RewriteCondの規則は作動しません。