作成日:2017-11-14, 更新日:2024-03-13
基本
リダイレクト関連はまず「RewriteEngine on」を記載する。
その後、条件(RewriteCond)とリダイレクト先(RewriteRule)を記載する。
基本的な「RewriteCond」と「RewriteRule」
RewriteCond A B RewriteRule C D
「(RewriteCond)AがBのとき」に「CはDに転送」というのが基本。
リダイレクト設定が1種類のとき
RewriteEngine on RewriteCond A B RewriteRule C D
リダイレクト設定が複数種類のとき
RewriteEngine on RewriteCond A B RewriteRule C D RewriteCond E F RewriteRule G H
ルールは複数だけど、リダイレクト先が1種類のとき
RewriteEngine on RewriteCond A1 B1 RewriteCond A2 B2 RewriteRule C D
「(RewriteCond)A1がB1のとき」もしくは「(RewriteCond)A2がB2のとき」に「CはDに転送」。
メモ
・RewriteBaseはRewriteRuleの転送先がパスの時に使われるURL
RewriteCond で使用できるパターンとオプション
条件に利用できるパターン
| パターン | 説明 |
|---|---|
| ! | テスト文字列が条件と不一致である場合、true を返す |
| < | テスト文字列を数値、または辞書順として大小比較を行い小さい場合、true を返す |
| > | テスト文字列を数値、または辞書順として大小比較を行い大きい場合、true を返す |
| = | テスト文字列を数値、または辞書順として等価比較を行い等しい場合、true を返す |
| -d | テスト文字列のディレクトリが存在する場合、true を返す |
| -f | テスト文字列のファイルが存在する場合、true を返す |
| -s | テスト文字列のファイルが存在し、サイズが0byteでない場合、true を返す |
| -l | テスト文字列がシンボリックリンクである場合、true を返す |
| -x | テスト文字列に対して実行権限がある場合、true を返す |
| -F | テスト文字列に対してアクセス可能なパスである場合、true を返す |
| -U | テスト文字列に対してアクセス可能なURLである場合、true を返す |
条件を評価する時のオプション
| オプション | 説明 |
|---|---|
| [OR] | 連続する RewriteCond のいずれかが true の場合に実行する。 省略時は、連続する RewriteCond がすべて true の場合に実行する。 |
| [NC] | 条件を評価する時、大文字小文字を区別しない。 |