2.3.115 RedirectMatch
正規表現で記述した条件を満たすクライアントからのリクエストをリダイレクトする場合に指定します。
説明
正規表現で記述した条件を満たすパスに対するクライアントからのリクエストを、新パスに再リクエスト(リダイレクト)する場合に指定します。
正規表現で括弧()を使用してグループ化している場合、そのi番目のグループの表現にマッチした文字列を、新パスで$iを使用して参照できます。iには1から9までの数字を指定します。正規表現で記述した条件を満たすパスへのリクエストを受信した場合に、指定したステータスコードと、新パスを設定したLocationヘッダーを応答します。通常、300番台のステータスコードを受けたWebブラウザーは、自動的にLocationヘッダーに指定されたアドレスに対して再リクエスト(リダイレクト)します。
書式
RedirectMatch [{permanent|temp|seeother|gone|ステータスコード}] 正規表現 新パス
記述できる場所
httpsd.conf、<VirtualHost>、<Directory>、.htaccess
指定できる値
- permanent
-
ステータスコード301 Moved Permanentlyを応答する場合に指定します。
- temp
-
ステータスコード302 Foundを応答する場合に指定します。
- seeother
-
ステータスコード303 See Otherを応答する場合に指定します。
- gone
-
ステータスコード410 Goneを応答する場合に指定します。新パスは指定できません。
- ステータスコード
-
指定したステータスコードを応答する場合に指定します。
ただし、300番台以外を指定する場合、新パスは指定できません。
- 正規表現
-
スラッシュから始まるリクエストURLの旧パスを正規表現で指定します。ただし、旧パスには、?以降(問い合わせ文字列)を指定できません。
次のディレクティブ指定値と重複する旧パスは指定できません。
-
ProxyPassのパス名
例えば、次のような指定はできません。
RedirectMatch ^/aaa/bbb/(.*) http://aaa.example.com/$1 ProxyPass /aaa/ http://aaa.example.com/
-
- 新パス
-
"プロトコル名://ホスト名[:ポート番号]"を含むURLのパスを指定します。また、新パスに指定するURLには、IPv6アドレスまたはIPv6アドレスに対応したホスト名も指定できます。
上書き許可
FileInfoレベル
記述例
- (例1)
-
RedirectMatch ^/other/ http://www.example.com/
/other/で始まるすべてのリクエストを、ステータスコード302で"http://www.example.com/"にリダイレクトします。
- (例2)
-
RedirectMatch permanent ^/old/(.*) http://www.example.com/new/$1
"/old/ファイル名"に対するリクエストを、ステータスコード301で"http://www.example.com/new/ファイル名"にリダイレクトします。