ディレクティブと書式 | 初期値 | 説明 |
---|---|---|
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に転送するかを指定する場所。「.*」で全てのディレクトリを対象ディレクトリに指定。 |