RewriteCondディレクティブの書式
RewriteCond %{変数名} 条件パターン [フラグ]
変数名
| グループ | 変数名 | 値・意味 |
|---|---|---|
| HTTPヘッダ | HTTP_USER_AGENT | ユーザエージェント |
| HTTP_REFERER | 参照元URL | |
| HTTP_COOKIE | クッキー情報 | |
| HTTP_FORWARDED | プロキシ情報 | |
| HTTP_HOST | サーバのホスト名 | |
| HTTP_PROXY_CONNECTION | プロキシを経由しているか否か | |
| HTTP_ACCEPT | ブラウザの言語タイプ | |
| コネクション&リクエスト | REMOTE_ADDR | リモートアドレス |
| REMOTE_HOST | リモートホスト名 | |
| REMOTE_USER | リモートユーザ名(基本認証利用時) | |
| REMOTE_IDENT | リモートユーザのID | |
| REQUEST_METHOD | リクエストメソッド | |
| SCRIPT_FILENAME | スクリプトファイル名 | |
| PATH_INFO | パス情報 | |
| QUERY_STRING | クエリ文字列 | |
| AUTH_TYPE | 認証タイプ | |
| サーバ内部変数 | DOCUMENT_ROOT | ドキュメントルートのパス |
| SERVER_ADMIN | サーバ管理者情報 | |
| SERVER_NAME | サーバ名 | |
| SERVER_ADDR | サーバのアドレス | |
| SERVER_PORT | サーバのポート番号 | |
| SERVER_PROTOCOL | プロトコルのバージョン | |
| SERVER_SOFTWARE | サーバソフトウェア | |
| 日時 | TIME_YEAR | 年 |
| TIME_MON | 月 | |
| TIME_DAY | 日 | |
| TIME_HOUR | 時 | |
| TIME_MIN | 分 | |
| TIME_SEC | 秒 | |
| TIME_WDAY | 曜日(0:日~6:土) | |
| TIME | 年月日時分秒 | |
| 特殊 | API_VERSION | APIバージョン |
| THE_REQUEST | リクエスト文字列 | |
| REQUEST_URI | リクエストURI | |
| REQUEST_FILENAME | リクエストされたファイル名 | |
| IS_SUBREQ | サブリクエストか否か | |
| HTTPS | HTTPSでのアクセスか否か |
条件パターン
| パターン | 意味 |
|---|---|
| ! | 否定 |
| < | テスト文字列より上の場合はtrue |
| > | テスト文字列より下の場合はtrue |
| = | テスト文字列と等しい場合はtrue |
| <= | テスト文字列以上の場合はtrue |
| >= | テスト文字列以下の場合はtrue |
| -d | ディレクトリが存在すればtrue |
| -f | ファイルが存在すればtrue |
| -eq | 「=」(num値) |
| -ge | 「<=」(num値) |
| -gt | 「<」(num値) |
| -le | 「>=」(num値) |
| -lt | 「>」(num値) |
| -F | アクセス可能な有効なパスを指している場合はtrue |
| -l | シンボリックリンクの場合はtrue |
| -s | ファイルが存在かつサイズが0でなければtrue |
| -U | アクセス可能な有効なURLの場合はtrue |
| -x | 実行権限がある場合はtrue |
フラグ
| フラグ | 意味 | 説明 |
|---|---|---|
| C | Chain | このルールにマッチしたら、次のルールを評価 |
| F | Forbidden | アクセス禁止(403-Forbidden)。[L]フラグと同様、以降のルールは無視される |
| G | Gone | 削除(410-Gone) |
| L | Last | マッチしたらRewriteを止めます。以降のルールは無視 |
| NC | No Case | 大文字小文字を無視 |
| NE | No Escape | ".", "?", "%"などの特殊文字が"%25″のようにエンコードされるのを防ぐ |
| OR | Or | RewriteCondを複数指定する場合のor指定。指定なしならAND |
| PT | Path Through | Rewriteを終了し、それ以外の処理に移行 |
| R | Ridirect | 指定したURLにリダイレクト。[R=303]のようにリダイレクトコードも付加できる。[L]フラグと同様、以降のルールは無視される |