.htaccess ファイルの RewriteRule 文法
.htaccessファイル内でのRewriteRuleの構文規則はURLを書き換えるものとして使用され、以下の形としています。
RewriteRule pattern target [flags]
パターンはマッチングする URL パターン,ターゲットは書き換え先のターゲット URL,フラグは書き換えルールの動作を指定するためのフラグ
パターンは、URL を照合するための、簡単な文字列または正規表現です。
targetは、単純なURLでも、変数が含まれるURLでも設定可能です。変数部分は、正規表現のキャプチャグループを使用して、patternと一致する部分を参照できます。
flags は書き換えルールの動作を指定する、オプションのパラメータです。よく使われる flags は次のとおりです。
- NC:大文字小文字を区別しない一致
- L:他のルールの解析は止める
- R:强制重定向,将URL改写为target指定的URL
- F:アクセス禁止。403 Forbidden エラーが発生しました。
- G:URLの「GET」パラメータ強制追加
- QSA:書き換え後のURLにクエリ文字列を保持します。
例えば、下記のルールは、”/page”で始まるすべてのURLを、実際のページ名を付加した”/index.php?page=”にリライトし、クエリ文字列はURLに保持します。
RewriteRule ^page/(.*)$ /index.php?page=$1 [QSA,L]
それによって「/page/about」にアクセスした際の実際のURLリクエストは「/index.php?page=about」になります。