| ディレクティブと書式 | 初期値 | 説明 |
|---|---|---|
| RewriteEngine on/off | off | 書き換えの可否を設定。 |
| RewriteOptions inherit | - | 現在の設定値を「親ディレクトリ」の設定値から強制的に継承するオプション設定 |
| RewriteBase / | / | 書き換えのベースとなるパス。ベースが明白な場合は不要。 |
| RewriteCond テスト文字列 パターン | - | テスト文字列とパターンを比較。 |
| RewriteRule パターン 置換対象 | - | パターンに合致した文字列を置換対象に書き換え。 |
| 書式 | 説明 |
|---|---|
| C |
Chain マッチしたら、次のルールを評価 |
| END(END) |
リライト処理停止。 「END」の場合は「.htaccess」単位で終了する。 |
| [F] |
Forbidden. 強制的にアクセス禁止にする。 HTTPレスポンス「403 : Forbidden」を返す。 |
| [G] |
Gone. 強制的に消去済みにする。 HTTPレスポンス「410 : Gone」を返す。 存在しないページを消去済みとしてマークする方法。 |
| [L] |
Last. マッチしたらRewriteをストップする。 以降のルールは無視して、実行しない。 |
| [NC] |
No Case. パターンにおいて、文字の大小を区別しない。 「A-Z」「a-z」を区別しない。 |
| [NE] |
No Escape 「.」「,」「?」「%」などの特殊文字がエンコードされるのを防ぐ。 |
| [OR][AND] |
Or / And 複数の比較条件を行う。 指定しないで複数指定すると「AND」。 |
| [P] |
Proxy ルールに一致したリクエストをプロキシを介して処理するオプション。 一致した場合は、以降の処理は無視され実行されない。 |
| [PT] |
Path Through 「Rewrite」を終了し、「Rewrite」以外の処理に移行・実行。 |
| [QSA] |
Query String Append 移転元が保有していたクエリ文字を引数として引き継ぐ |
| [R] |
Redirect. 強制的にリダイレクトする。 |
| [R=301] |
永久的に移動。 HTTPレスポンス「301 : Moved Permanently」を返す。 |
| [R=302] |
一時的な移動。 デフォルトの設定。 HTTPレスポンス「302 : Moved Temporarily」を返す。 |
| 文字 | 説明 |
|---|---|
| ! | 否定。 |
| . | 任意の1文字。 |
| [] | 括弧内のいずれかの文字。 |
| [^] | 括弧内のいずれかの文字以外。 |
| | | または。 |
| ? | 直前の文字の0回または1回の繰り返し |
| * | 直前の文字の0回以上の繰り返し。 |
| + | 直前の文字の1回以上の繰り返し。 |
| () | 選択範囲の境界を明示する、もしくは後方参照を作成する。 |
| ^ | 行頭 |
| \$ | 行末 |
| \$n | (0 <= n ≤= 9) 後方参照。n番目の()内の値が入ります。 |
| %{} | サーバ変数の取得。 |
| \ | 逆スラッシュ(日本語環境では円マーク)。パターン内で正規表現の特殊文字をエスケープする。 |
| < | 左より上 |
| > | 右より下 |
| = | 両サイドが等しい |
| <= | 左以上 |
| >= | 右以下 |
| -d | ディレクトリが存在する |
| -f | ファイルが存在する |
| -eq | 「=」イコールと同意 |
| -ge | 「<=」以上と同意 |
| -gt | 「<」より上と同意 |
| -le | 「>=」以下と同意 |
| -lt | 「>」未満と同意 |
| 変数名 | 説明 |
|---|---|
| HTTP_USER_AGENT | ブラウザの種類とバージョン。 |
| HTTP_REFERER | 参照元の URL 。 |
| HTTP_COOKIE | 設定されているクッキー情報。 |
| HTTP_FORWARDED | プロキシサーバ情報。 |
| HTTP_HOST | 接続要求しているホスト名。 |
| HTTP_PROXY_CONNECTION | 接続先プロキシサーバとの接続状態。 |
| HTTP_ACCEPT | ブラウザが認識可能なデータ形式。 |
| DOCUMENT_ROOT | サイトのルートディレクトリ。 |
| SERVER_ADMIN | サーバ管理者のメールアドレス情報。 |
| SERVER_NAME | サーバのホスト名、ドメイン名、またはIPアドレス情報。 |
| SERVER_ADDR | サーバのIPアドレス。 |
| SERVER_PORT | 送信に使われたサーバのポート番号。 |
| SERVER_PROTOCOL | 送信に使われたプロトコルの名前とレビジョン情報。 |
| SERVER_SOFTWARE | 起動したサーバソフトウエアの名前とバージョン情報。 |
| REMOTE_ADDR | リモートホストのIPアドレス情報。 |
| REMOTE_HOST | リモートホストのドメイン名。 |
| REMOTE_USER | ユーザの認証名。 |
| REMOTE_IDENT | リモートホストのユーザ名。 |
| REQUEST_METHOD | リクエストを送信した方法。 |
| REQUEST_URI | リクエストされたURI。 |
| SCRIPT_FILENAME | 現在実行しているスクリプト名。 |
| PATH_INFO | クライアントから送られるパス情報。 |
| QUERY_STRING | URL に付加して渡された "?" 以降の文字列。 |
| AUTH_TYPE | ユーザを認証するときに使用する認証方法。 |
| TIME_YEAR | サーバのシステム日付・年 |
| TIME_MON | サーバのシステム日付・月 |
| TIME_DAY | サーバのシステム日付・日 |
| TIME_HOUR | サーバのシステム日付・時 |
| TIME_MIN | サーバのシステム日付・分 |
| TIME_SEC | サーバのシステム日付・秒 |
| TIME_WDAY | サーバのシステム日付・曜日 |
| TIME | サーバのシステム日付・Unix タイムスタンプ。 |
| コード | 説明 |
|---|---|
| 301 |
「Moved Permanently」 「恒久的」なリダイレクトを意味する |
| 302 |
「Found」 「一時的」なリダイレクトを意味する |
| 303 |
「See Other」 「GET」メソッドに変換されるリダイレクト。 「POST」メソッドでアクセスしても、「GET」メソッドでのアクセスに変換されるという「リダイレクト」らしい。 |
| 307 |
「Temporary Redirect」 「302」に似ている「リダイレクト」。 一時的に別の「URL」に「リダイレクト」させるの一緒だが、 「307」は、同一メソッドで「リダイレクト」をする。 |
| コード | 解説 |
|---|---|
| RewriteEngine on | リダイレクトを「ON」「OFF」するコード。 |
| RewriteCond %{REMOTE_ADDR} !【対象のIPアドレス】 | 「REMOTE_ADDR」でIPで指定することを宣言。対象アドレス以外を指定する場合「!」を記述。対象アドレスを指定する場合「!」を記述しない。 |
| RewriteRule 【対象のディレクトリ】 【転送先のURL】 [R=302,L] | どのディレクトリへのアクセスをどのURLに転送するかを指定する場所。「.*」で全てのディレクトリを対象ディレクトリに指定。 |