6.2.6 M,N,O,P,Q,Rで始まるディレクティブ
- 〈この項の構成〉
(1) MaxClients 接続数
- prefork MPM
-
〜((1−1024)) 《1024》
- worker MPM
-
〜((ThreadsPerChild - (ServerLimit × ThreadsPerChild)))《400》
(a) 内容
同時に接続できるクライアントの最大数(TCP/IPのコネクション最大数)を指定します。
HTTP Serverを起動すると,StartServersディレクティブで指定した数のプロセスが起動されリクエストを待ちます。
- prefork MPM
-
多くのリクエストが同時に発生した場合,複数のプロセスでリクエストを処理することになります。リクエスト待ちの残りプロセス数がMinSpareServersディレクティブで指定した数より少なくなると,徐々に新規プロセスを生成します。このとき,プロセス数がこのディレクティブで指定した数になるまでプロセスが生成されます。その後,リクエストの処理が終了しリクエスト待ちプロセスが増加すると,MaxSpareServersディレクティブで指定した数までプロセスを終了させます。
- worker MPM
-
多くのリクエストが同時に発生した場合,複数のスレッドでリクエストを処理することになります。リクエスト待ちの残りスレッド数がMinSpareThreadsディレクティブで指定した数より少なくなると,新しいプロセスを生成します。このとき,スレッド数がこのディレクティブで指定した数になるまでプロセスが生成されます。その後,リクエストの処理が終了しリクエスト待ちスレッドが増加すると,MaxSpareThreadsディレクティブで指定した数以下になるまでプロセスを終了させます。
MaxClientsディレクティブの値は,ThreadsPerChildディレクティブの値から,ServerLimitディレクティブの値×ThreadsPerChildディレクティブの値の範囲です。MaxClientsディレクティブの指定値を増加させるために,サーバプロセス数の上限値を変更する場合にはServerLimitディレクティブ指定値を変更します。
(b) 記述できる場所
httpsd.conf
(c) 指定例
MaxClients 150
(2) MaxKeepAliveRequests 接続数
〜((0−2147483647))《100》
(a) 内容
KeepAlive連続接続回数の上限を指定します。上限値を設定しない場合は0を指定します。KeepAliveはサーバプロセスが特定のクライアントに占有されるので,ほかのクライアントにもサービスの機会を与えるために上限を設けます。
(b) 注意事項
HTTP/2通信の場合,連続接続回数に上限はありません。
(c) 記述できる場所
httpsd.conf
(d) 指定例
MaxKeepAliveRequests 100
(3) MaxRequestsPerChild リクエスト処理回数
〜((0−2147483647))《0》
(a) 内容
サーバプロセスのリクエスト処理回数を指定します。サーバプロセスは指定されたリクエスト処理回数だけ動作し,終了します。 ユーザが作成したアプリケーションなどによるメモリリークによる障害を未然に防ぐ効果があります。なお,0を指定すると,サーバプロセスのリクエスト処理回数の上限は設定されません。サーバプロセスは終了することなく,リクエストを待ち,処理します。
(b) 記述できる場所
httpsd.conf
(c) 指定例
MaxRequestsPerChild 10000
(4) MaxSpareServers プロセス数
〜((1−1024))《10》
(a) 内容
リクエスト待ち状態で稼働させておくサーバプロセスの最大数を指定します。プロセス数に関連するほかのディレクティブについては,「4.1 HTTP Serverの処理とディレクティブとの関係」を参照してください。
MinSpareServers以下の値を設定した場合,MinSpareServers指定値+1の値が仮定されます。
このディレクティブは,prefork MPMを使用する場合に指定できます。
(b) 記述できる場所
httpsd.conf
(c) 指定例
MaxSpareServers 10
(5) MaxSpareThreads スレッド数
〜(((MinSpareThreads+ThreadsPerChild)−MaxClients))《250》
(a) 内容
リクエスト待ち状態で稼働させておくサーバスレッドの最大数を指定します。リクエスト待ち状態のサーバスレッド数がこの指定値より多くなった場合,リクエスト待ち状態のサーバスレッド数がこの指定値以下になるまでサーバプロセスを終了させます。
MaxSpareThreadsディレクティブの値は,MinSpareThreadsディレクティブの値 + ThreadsPerChildディレクティブの値 から,MaxClientsディレクティブの値の範囲です。MinSpareThreadsディレクティブの値 + ThreadsPerChildディレクティブの値より小さい値を指定した場合は,MinSpareThreadsディレクティブの値 + ThreadsPerChildディレクティブの値が仮定されます。
このディレクティブは,worker MPMを使用する場合に指定できます。
(b) 記述できる場所
httpsd.conf
(c) 指定例
MaxSpareThreads 75
(6) MinSpareServers プロセス数
〜((1−1024))《5》
(a) 内容
リクエスト待ち状態で稼働しているサーバプロセスの最小数を指定します。サーバプロセス数がこの指定値より少なくなったら,新しいプロセスを生成します。プロセス数に関連するほかのディレクティブについては,「4.1 HTTP Serverの処理とディレクティブとの関係」を参照してください。
このディレクティブは,prefork MPMを使用する場合に指定できます。
(b) 記述できる場所
httpsd.conf
(c) 指定例
MinSpareServers 5
(7) MinSpareThreads スレッド数
〜((1 - MaxClients))《75》
(a) 内容
リクエスト待ち状態で稼働しているサーバスレッドの最小数を指定します。リクエスト待ち状態のサーバスレッド数がこの指定値より少なくなった場合,新しいサーバプロセスを生成します。
このディレクティブは,worker MPMを使用する場合に指定できます。
(b) 記述できる場所
httpsd.conf
(c) 指定例
MinSpareThreads 25
(8) MultiviewsMatch {NegotiatedOnly|Handlers}
(a) 内容
コンテントネゴシエーションの対象となる拡張子の種類を指定します。
NegotiatedOnly:拡張子が文字セット,圧縮形式,言語コード,MIMEタイプと関連づけられたものだけをコンテントネゴシエーションの対象にします。
Handlers:NegotiatedOnlyを指定した場合の対象に加え,ハンドラと関連づけられた拡張子についてもコンテントネゴシエーションの対象にします。
(b) 記述できる場所
httpsd.conf,<VirtualHost>,<Directory>,.htaccess
(c) 上書き許可
FileInfoレベル
(d) 指定例
MultiviewsMatch Handlers
(9) Options {+|-}オプション 〔{+|-}オプション …〕
〜《None》
(a) 内容
ユーザが利用できる機能を制限する場合に指定します。
+:オプションで指定した機能の利用を許可します。
-:オプションで指定した機能の利用を禁止します。
オプション |
機能 |
---|---|
All |
MultiViews,SymLinksIfOwnerMatchを除くすべてのオプションが有効です。 |
ExecCGI |
CGIスクリプトの実行を許可します。 |
FollowSymLinks |
シンボリックリンクをたどります。Windows版では指定できません。 |
Indexes |
URLにディレクトリが指定されたとき,DirectoryIndexディレクティブで指定したファイル(デフォルトはindex.html)がない場合,ディレクトリのインデクスを表示します。 |
MultiViews |
Content-negotiated Multiviewsをサポートします。 |
None |
すべてのオプションで指定できる機能を無効にします。 |
SymLinksIfOwnerMatch |
ファイルまたはディレクトリの所有者がシンボリックリンクの所有者と同じ場合だけ,リンクをたどります。Windows版では指定できません。 |
- 注意事項
-
+-を使用しないでこのディレクティブを複数指定すると,最後に指定したディレクティブだけが有効になります。
- (例1)
Options All Options ExecCGI
このようにオプションに+-を指定しないディレクティブを2行指定した場合,ユーザはCGIスクリプトの実行機能だけが利用できます。ディレクトリインデクスなどの機能は利用できません。
- (例2)
-
- httpsd.confファイルの指定
Options All
- アクセスコントロールファイルの指定
Options ExecCGI
httpsd.confファイルのあとにアクセスコントロールファイルが参照されるので,アクセスコントロールファイルがあるディレクトリではCGIスクリプトの実行機能だけが利用できます。
- (例3)
Options Indexes ExecCGI
このように1行に+-を指定しないオプションを指定した場合は,指定した機能の両方を利用できます。
(b) 記述できる場所
httpsd.conf,<VirtualHost>,<Directory>,.htaccess
(c) 上書き許可
Optionsレベル
(10) Order 指示子
〜《deny,allow》
(a) 内容
AllowディレクティブとDenyディレクティブの指定の評価の順序を指定します。指示子に指定できるものを次に示します。先に評価されたものは,あとに評価されるものに上書きされます。
指示子 |
意味 |
---|---|
deny,allow |
Denyディレクティブの指定を,Allowディレクティブの指定より先に評価 |
allow,deny |
Allowディレクティブの指定を,Denyディレクティブの指定より先に評価 |
mutual-failure |
Allowディレクティブに指定され,Denyディレクティブに指定されていないホストだけアクセスを許可 |
(b) 記述できる場所
<Directory>,.htaccess
(c) 上書き許可
Limitレベル
(11) PassEnv 環境変数 〔環境変数 …〕
(a) 内容
CGIスクリプトに渡す任意の環境変数を指定できます。
(b) 記述できる場所
httpsd.conf,<VirtualHost>,<Directory>,.htaccess
(c) 上書き許可
FileInfoレベル
(d) 指定例
PassEnv TMP
(12) PidFile ファイル名
〜《logs/httpd.pid》
(a) 内容
制御プロセスIDを格納するファイル名を指定します。ファイル名には,絶対パスまたはServerRootディレクティブの指定値からの相対パスが指定できます。
(b) 注意事項
Windows版の場合,再起動時には,PidFileディレクティブ指定値の変更は反映されません。PidFileディレクティブ指定値を変更した場合は,いったんWebサーバを停止してから,再起動してください。
UNIX版の場合,再起動時には,PidFileディレクティブ指定値の変更は反映されません。PidFileディレクティブ指定値を変更した場合は,いったんWebサーバをkillコマンドで停止してから,起動してください。停止時にhttpsdctlコマンドは使用できません。
複数環境を生成する場合には,ファイルパスはほかの環境と競合しないように変更してください。
(c) 記述できる場所
httpsd.conf
(d) 指定例
PidFile logs/httpd.pid
(13) Port ポート番号
〜((1−65535))《80》
(a) 内容
IPv4アドレスを使用したWebブラウザからの要求を受け付けるサーバのポート番号を指定します。
Portディレクティブを指定しても,IPv6アドレスを使用したWebブラウザからの要求は受け付けません。IPv6アドレスを使用する場合は,Listenディレクティブで指定してください。その場合,IPv4アドレスと併用するときは,IPv4アドレスについてもListenディレクティブを指定してください。
(b) 記述できる場所
httpsd.conf
(c) 指定例
Port 80
(14) Protocols プロトコル名 〔プロトコル名 …〕
〜《http/1.1》
(a) 内容
サーバで使用可能なプロトコルのリストを指定します。複数のプロトコルが指定された場合には,先に指定されたプロトコルを優先します。サーバが認識できないプロトコルが指定された場合は無視します。<VirtualHost>で指定した場合,httpsd.confでの指定はマージしないで上書きします。
h2:TLS暗号を利用したHTTP/2プロトコルでの通信をする場合に指定します。
h2c:平文のHTTP/2プロトコルでの通信をする場合に指定します。
http/1.1:HTTP/1.1プロトコルでの通信をする場合に指定します。HTTP/1.0プロトコルも含まれます。
(b) 注意事項
http/1.1を含まないh2およびh2cの指定でもHTTP/2プロトコルが選択できなかった場合は,HTTP/1.1プロトコルが選択されます。
HTTP/2プロトコル通信機能を使用するためにはmod_http2モジュールの組み込みが必要です。HTTP/2プロトコル通信については,「4.17 HTTP/2プロトコル通信機能」を参照してください。
(c) 記述できる場所
httpsd.conf,<VirtualHost>
(d) 指定例
- (例1)
Protocols h2 h2c
h2およびh2cプロトコルが使用できます。
- (例2)
Protocols h2 Protocols h2c
h2およびh2cプロトコルが使用できます。
(15) Proxy100Continue {On|Off}
(a) 内容
クライアントからExcept: 100-continueヘッダを含むリクエストを受けた場合の動作を設定します。
On:クライアントからExcept: 100-continueヘッダを含むリクエストを受けた場合,バックエンドサーバにリクエストを転送し,バックエンドサーバからのレスポンスを待つ動作となります。HTTP Server 11-20-09以前のバージョンでのデフォルト値です。
Off:クライアントからExcept: 100-continueヘッダを含むリクエストを受けた場合,リバースプロキシがクライアントに100 Continueのレスポンスを返し,クライアントからのリクエストボディを待つ動作となります。HTTP Server 11-20-10以降のバージョンでのデフォルト値です。
(b) 注意事項
バックエンドサーバにCosminexusのNIO HTTPサーバを使用する場合は,このディレクティブを必ずOffに設定してください。
(c) 記述できる場所
httpsd.conf
(16) ProxyErrorOverride {On|Off}
(a) 内容
バックエンドサーバからのステータスコードが400番台または500番台の場合,レスポンスヘッダとレスポンスボディをオーバーライドします。その結果,リバースプロキシはバックエンドサーバからのレスポンスではなく,自身が生成したレスポンスをクライアントに返します。
On:バックエンドサーバからのステータスコードが400番台または500番台の場合,レスポンスヘッダとレスポンスボディをオーバーライドします。
Off:レスポンスヘッダとレスポンスボディをオーバーライドしません。
(b) 注意事項
-
リバースプロキシを使用するためにはmod_proxyモジュールおよびmod_proxy_httpモジュールの組み込みが必要です。リバースプロキシの詳細は,「4.7 リバースプロキシの設定」を参照してください。
-
HTTP/2通信ではレスポンスヘッダとレスポンスボディをオーバーライドしません。
(c) 記述できる場所
httpsd.conf,<VirtualHost>,<Location>
(d) 指定例
ProxyErrorOverride On
バックエンドサーバからのステータスコードが400番台または500番台の場合,リバースプロキシが生成したレスポンスをクライアントに返します。
(17) ProxyPass パス名 {URL|!} 〔キー=値 〔キー=値 …〕〕
(a) 内容
リバースプロキシを使用する場合,Webブラウザからのリクエストとそれを転送するアドレスを指定します。
パス名:Webブラウザからリバースプロキシへのリクエストをスラッシュ(/)から始まるURLで指定します。
URL:転送先となるバックエンドサーバのURLを"http,ws://IPアドレスまたはホスト名〔:ポート番号〕/"を含む形で指定します。
URLには,IPv6アドレスまたはIPv6アドレスに対応したホスト名も指定できます。
パス名およびURLには,?以降(問い合わせ文字列),*および正規表現は使用できません。
http://から始まるURLを指定した場合は,バックエンドサーバとHTTP通信します。
h2c://から始まるURLを指定した場合は,バックエンドサーバと平文のHTTP/2プロトコルで通信します。
ws://から始まるURLを指定した場合は,クライアントとバックエンドサーバ間の通信をWebSocket通信にアップグレードします。ただし,クライアントおよびバックエンドサーバがWebSocketプロトコルに対応している必要があります。
!:指定したパス名に一致したリクエストを,リバースプロキシが扱うリクエストの対象から除外する場合に指定します。
キー:指定できるキーを次に示します。
キー |
値 |
内容 |
---|---|---|
timeout |
1−65535(単位:秒) |
次のバックエンドサーバとの送受信時の待ち時間を指定します。
キーが省略された場合のデフォルト値は,Timeout ディレクティブ指定値です。 |
connectiontimeout |
1−65535(単位:秒) |
バックエンドサーバとの接続時の待ち時間を指定します。 キーが省略された場合のデフォルト値は,timeoutキー値です。 |
URLにws://から始まるURLを指定した場合でもtimeoutキーを指定できますが,WebSocket通信へのアップグレード後ではバックエンドサーバとの送受信時の待ち時間としては機能しません。connectiontimeoutキーが省略された場合のデフォルト値としてだけ機能します。
次のディレクティブ指定値と重複するパス名は指定できません。
-
AliasのURL
-
AliasMatchの正規表現
-
Redirectの旧パス
-
RedirectMatchの正規表現
-
ScriptAliasのURL
-
ScriptAliasMatchの正規表現
-
リダイレクタ定義ファイルのJkMountのURLパターン
(b) 注意事項
リバースプロキシを使用するためには,次のモジュールの組み込みが必要です。
-
mod_proxyモジュール
- UNIX版
-
LoadModule proxy_module libexec/mod_proxy.so
- Windows版
-
LoadModule proxy_module modules/mod_proxy.so
さらに,転送先となるバックエンドサーバのURLの指定によって,それぞれ次のモジュールの組み込みが必要です。
URLがhttp://で始まる指定の場合
-
mod_proxy_http モジュール
- UNIX版
-
LoadModule proxy_http_module libexec/mod_proxy_http.so
- Windows版
-
LoadModule proxy_http_module modules/mod_proxy_http.so
URLがh2c://で始まる指定の場合
-
mod_proxy_http2 モジュール
- UNIX版
-
LoadModule proxy_http2_module libexec/mod_proxy_http2.so
- Windows版
-
LoadModule proxy_http2_module modules/mod_proxy_http2.so
URLがws://で始まる指定の場合
-
mod_proxy_wstunnelモジュール
- UNIX版
-
LoadModule proxy_wstunnel_module libexec/mod_proxy_wstunnel.so
- Windows版
-
LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so
!を指定する場合は,URLを指定するProxyPassディレクティブより先に指定してください。パス名およびURLには,?以降(問い合わせ文字列)を指定できません。
(c) 記述できる場所
httpsd.conf,<VirtualHost>
(d) 指定例
ProxyPass /abc/def/ ! ProxyPass /abc/ http://backend.example.com/
/abc/def/から始まるリクエストをリバースプロキシのリクエストとして扱いません。
(18) ProxyPassReverse パス名 URL
(a) 内容
リバースプロキシを使用する場合,バックエンドサーバからのリダイレクトレスポンスのLocationヘッダで示すURLを変更します。Webブラウザからのリダイレクトによるリクエストをリバースプロキシを通すリクエストにするためにLocationヘッダをこのディレクティブの指定値に変更します。
パス名:リダイレクトのリクエスト先であるリバースプロキシのパス名を,/(スラッシュ)から始まるURLで指定します。
URL:変更対象となるLocationヘッダ中のバックエンドサーバのURLを"http://ホスト名〔:ポート番号〕"を含む形で指定します。
URLには,IPv6アドレスまたはIPv6アドレスに対応したホスト名も指定できます。IPv6アドレスにはさまざまな表記方法がありますので,指定値に注意してください。IPv6アドレスの表記が指定値と一致しない場合,ディレクティブが有効になりません。IPv6アドレスを指定する場合は,バックエンドサーバからの応答のLocationヘッダ値に含まれるIPv6アドレスの表記を確認してください。パス名およびURLには,?以降(問い合わせ文字列),*および正規表現は使用できません。
(b) 注意事項
リバースプロキシを使用するためにはmod_proxyモジュールおよびmod_proxy_httpモジュールの組み込みが必要です。Locationヘッダの変更で使用されるホスト名やポート番号は,UseCanonicalNameディレクティブ指定値によって決定します。パス名およびURLには,?以降(問い合わせ文字列),*および正規表現は使用できません。リバースプロキシの詳細は,「4.7 リバースプロキシの設定」を参照してください。
(c) 記述できる場所
httpsd.conf,<VirtualHost>
(19) ProxyPreserveHost {On|Off}
(a) 内容
リバースプロキシを使用する場合,クライアントから受信したHostヘッダの値をそのままバックエンドサーバに転送するかどうかを指定します。
On:クライアントから受信したHostヘッダの値をそのままバックエンドサーバに転送します。
Off:クライアントから受信したHostヘッダの値をProxyPassディレクティブの指定値に従って変更して,バックエンドサーバに転送します。
(b) 注意事項
リバースプロキシを使用するためにはmod_proxyモジュールおよびmod_proxy_httpモジュールの組み込みが必要です。リバースプロキシの詳細は,「4.7 リバースプロキシの設定」を参照してください。
(c) 記述できる場所
httpsd.conf,<VirtualHost>
(d) 指定例
ProxyPreserveHost On
クライアントから受信したHostヘッダの値をそのままバックエンドサーバに転送します。
(20) ProxyVia {on|off|full|block}
(a) 内容
このディレクティブはプロキシでViaヘッダの使用を制御する場合に指定します。
on:Viaヘッダに自ホストの情報を追加します。すでにある情報は変更しません。
off:Viaヘッダに自ホストの情報を追加しません。すでにある情報は変更しません。
full:コメントとして自ホストのバージョンを付けた情報をViaヘッダに追加します。すでにある情報は変更しません。
block:Viaヘッダに自ホストの情報を追加しません。リクエスト中のViaヘッダは削除します。
(b) 注意事項
リバースプロキシを使用するためにはmod_proxyモジュールおよびmod_proxy_httpモジュールの組み込みが必要です。リバースプロキシの詳細は,「4.7 リバースプロキシの設定」を参照してください。
(c) 記述できる場所
httpsd.conf,<VirtualHost>
(26) QOSRedirect 旧パス 新パス
(a) 内容
流量制限機能によって処理が拒否された場合に,クライアントからのリクエストを指定されたパスにリダイレクトさせるときに指定します。新パスには,"プロトコル名://ホスト名〔:ポート番号〕"を含むURLのパスを指定します。また,新パスに指定するURLには,IPv6アドレスまたはIPv6アドレスに対応したホスト名も指定できます。
旧パスでリクエストを受けた場合,ステータスコード302とLocationヘッダに新パスを設定したレスポンスを返します。レスポンスをカスタマイズすることはできません。
旧パス,新パスの指定については,Redirectディレクティブを参照してください。
(b) 注意事項
流量制限機能を使用するためにはmod_hws_qosモジュールの組み込みが必要です。流量制限機能については,「4.9 流量制限機能」を参照してください。
(c) 記述できる場所
httpsd.conf,<VirtualHost>,<Location>
(27) QOSRejectionServers 値
- UNIX版の場合
-
〜((0−MaxClientsディレクティブ指定値))《1》
- Windows版の場合
-
〜((0−ThreadsPerChildディレクティブ指定値))《1》
(a) 内容
リクエスト待ち状態のサーバプロセス数が減少し,受信したすべてのリクエストを拒否するようになるときの,サーバプロセス数を指定します。
Windows版の場合は,サーバスレッド数を指定します。
(b) 注意事項
流量制限機能を使用するためにはmod_hws_qosモジュールの組み込みが必要です。流量制限機能については,「4.9 流量制限機能」を参照してください。
(c) 記述できる場所
httpsd.conf,<VirtualHost>,<Location>
(28) QOSResponse {file[MIMEタイプ]ファイル名|message テキスト}
(a) 内容
流量制限機能によって処理が拒否された場合に,503ステータスコードとともに返送するコンテンツを指定します。コンテンツはサーバプロセス内にキャッシュされるため,変更する場合にはサーバの再起動が必要です。
file:指定したファイルを,指定したMIMEタイプで返送します。MIMEタイプを省略したときは"text/html"が設定されます。また,ファイル名には,絶対パスまたはServerRootディレクティブの指定値からの相対パスが指定できます。
message:指定したテキストを返送します。テキストは先頭に"を記述して文字列を指定します。MIMEタイプには"text/html"が設定されます。
(b) 注意事項
流量制限機能を使用するためにはmod_hws_qosモジュールの組み込みが必要です。流量制限機能については,「4.9 流量制限機能」を参照してください。
(c) 記述できる場所
httpsd.conf,<VirtualHost>,<Location>
(d) 指定例
QOSResponse file "text/html; charset=ISO-8859-1" htdocs/busy.html QOSResponse message "Server busy.
(29) ReadmeName ファイル名
(a) 内容
ディレクトリインデクス表示時のReadmeとして付けるコメントを記述したファイルのファイル名(パス情報なし)を指定します。HTMLまたはプレーンテキストで記述できます。ただし,AddTypeディレクティブまたはTypesConfigディレクティブで指定したファイルで,MIMEタイプが正しく定義されている必要があります。プレーンテキストでコメントを作成した場合,ディレクトリインデクス表示のHTMLには<PRE>タグが追加されます。
(b) 記述できる場所
httpsd.conf,<VirtualHost>,<Directory>,.htaccess
(c) 上書き許可
Indexesレベル
(d) 指定例
ReadmeName README.html
ディレクトリ下のREADME.htmlファイルの内容を表示します。
(30) Redirect 〔{permanent|temp|seeother|gone|ステータスコード}〕 旧パス 新パス
(a) 内容
旧パスに対するクライアントからのリクエストを,新パスに再リクエスト(リダイレクト)する場合に指定します。
旧パスには,スラッシュから始まるリクエストURLのパスを指定します。ただし,旧パスには,?以降(問い合わせ文字列)を指定できません。
次のディレクティブ指定値と重複する旧パスは指定できません。
-
AliasのURL
-
AliasMatchの正規表現
-
ProxyPassのパス名
-
RedirectMatchの正規表現
-
ScriptAliasのURL
-
ScriptAliasMatchの正規表現
-
リダイレクタ定義ファイルのJkMountのURLパターン
例えば,次のような指定はできません。
Redirect temp /aaa/bbb/ http://aaa.example.com/ ProxyPass /aaa/ http://aaa.example.com/
新パスには,"プロトコル名://ホスト名〔:ポート番号〕"を含むURLのパスを指定します。また,新パスに指定するURLには,IPv6アドレスまたはIPv6アドレスに対応したホスト名も指定できます。
旧パスでリクエストを受けた場合,指定したステータスコードとLocationヘッダに新パスを設定した応答を返します。通常,300番台のステータスコードを受けたWebブラウザは,自動的にLocationヘッダに指定されたアドレスに対してリダイレクトします。
Redirectディレクティブでは,特定のファイルへのリクエストを特定のファイルへリダイレクトするか,特定のディレクトリ下の,任意のパスへのリクエストを特定のディレクトリ下の,同名パスへリダイレクトする指定ができます。特定のディレクトリ下の,任意のパスへのリクエストを,特定のファイルへリダイレクトしたい場合はRedirectMatchディレクティブを使用してください。
permanent:ステータスコード301 Moved Permanentlyを応答します。
temp:ステータスコード302 Foundを応答します。
seeother:ステータスコード303 See Otherを応答します。
gone:ステータスコード410 Goneを応答します。新パスは指定できません。
ステータスコード:指定したステータスコードを応答します。指定できる値は,「付録A ステータスコード」を参照してください。ただし,300番台以外を指定する場合,新パスは指定できません。
(b) 記述できる場所
httpsd.conf,<VirtualHost>,<Directory>,.htaccess
(c) 上書き許可
FileInfoレベル
(d) 指定例
Redirect temp /index.html http://ホスト名:ポート番号/default.html
/index.htmlに対するリクエストを,ステータスコード302で"http://ホスト名:ポート番号/default.html"にリダイレクトします。
(31) RedirectMatch 〔{permanent|temp|seeother|gone|ステータスコード}〕 正規表現 新パス
(a) 内容
正規表現で記述した条件を満たすパスに対するクライアントからのリクエストを,新パスに再リクエスト(リダイレクト)する場合に指定します。
正規表現には,スラッシュから始まるリクエストURLの旧パスを正規表現で指定します。ただし,旧パスには,?以降(問い合わせ文字列)を指定できません。
次のディレクティブ指定値と重複する旧パスは指定できません。
-
AliasのURL
-
AliasMatchの正規表現
-
ProxyPassのパス名
-
Redirectの旧パス
-
ScriptAliasのURL
-
ScriptAliasMatchの正規表現
-
リダイレクタ定義ファイルのJkMountのURLパターン
例えば,次のような指定はできません。
RedirectMatch ^/aaa/bbb/(.*) http://aaa.example.com/$1 ProxyPass /aaa/ http://aaa.example.com/
新パスには,"プロトコル名://ホスト名〔:ポート番号〕/"を含むURLのパスを指定します。また,新パスに指定するURLには,IPv6アドレスまたはIPv6アドレスに対応したホスト名も指定できます。
正規表現で括弧()を使用してグループ化している場合,そのi番目のグループの表現にマッチした文字列を,新パスで $iを使用して参照できます。iには1から9までの数字を指定します。正規表現で記述した条件を満たすパスへのリクエストを受信した場合に,指定したステータスコードと,新パスを設定したLocationヘッダを応答します。通常,300番台のステータスコードを受けたWebブラウザは,自動的にLocationヘッダに指定されたアドレスに対して再リクエスト(リダイレクト)します。
各ステータスコードの指定については,Redirectディレクティブを参照してください。
(b) 記述できる場所
httpsd.conf,<VirtualHost>,<Directory>,.htaccess
(c) 上書き許可
FileInfoレベル
(d) 指定例
- (例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/ファイル名"にリダイレクトします。
(32) RequestHeader{{set|append|add}ヘッダ ヘッダ値|unset ヘッダ}〔env=〔!〕環境変数〕
(a) 内容
クライアントから受信したヘッダ値をカスタマイズする場合に指定します。
set:ヘッダを設定します。ヘッダがある場合は,指定したヘッダ値に書き換えます。
append:存在するヘッダにヘッダ値を追加します。存在するヘッダ値との間は,コンマで区切られます。ヘッダがない場合は,ヘッダを設定します。
add:ヘッダがあっても,別の行にヘッダを設定します。同じヘッダを複数行設定する場合に使用します。
unset:指定したヘッダがある場合,そのヘッダをすべて削除します。
env=環境変数:指定した環境変数が設定されている場合に,RequestHeaderディレクティブで指定した内容を実行します。
env=!環境変数:指定した環境変数が設定されていない場合に,RequestHeaderディレクティブで指定した内容を実行します。
ヘッダ値に空白がある場合は,"(引用符)で囲む必要があります。ヘッダ値は文字だけから成る文字列,フォーマット指示子を含む文字列または両方から成る文字列を指定できます。フォーマット指示子を次に示します。
フォーマット指示子 |
意味 |
---|---|
%t |
リクエストを受け取った時刻を,1970年1月1日0時0分0秒(GMT:Greenwich Mean Time)から経過した時間で表示する。単位はマイクロ秒。先頭には"t="が付けられる。 |
%D |
リクエスト処理に掛かった時間を表示する。単位はマイクロ秒。先頭には"D="が付けられる。 |
%{env_name}e |
環境変数env_nameの値。 |
(b) 注意事項
ヘッダカスタマイズ機能を使用するためにはmod_headersモジュールの組み込みが必要です。ヘッダカスタマイズ機能については,「4.10 ヘッダカスタマイズ機能」を参照してください。
(c) 記述できる場所
httpsd.conf,<VirtualHost>,<Directory>,.htaccess
(d) 上書き許可
FileInfoレベル
(e) 指定例
RequestHeader set Host www.example.com
(33) RequestReadTimeout タイプ=時間 〔タイプ=時間〕
〜《header=20 body=20》
(a) 内容
リクエスト受信開始からリクエストヘッダ受信完了まで,およびリクエストボディの受信開始から完了までのタイムアウト時間を秒単位で指定します。タイムアウト時間には,0から2147483647までの値を指定します。データの送信が遅いリクエストに対して,サーバのリソースを長時間専有されることを避ける場合に有効です。なお,指定のないタイプについてはタイムアウトに20秒を設定して,タイムアウト時間に0を指定したタイプについてはタイムアウトを設定しません。
リクエストヘッダ受信時にタイムアウトを検知した場合,ステータスコード408を返します。
リクエストボディ受信時にタイムアウトを検知した場合,ステータスコード400を返します。
タイプには次に示すheaderとbodyが指定できます。
header:リクエスト受信開始からリクエストヘッダ受信完了までの経過時間を監視する場合に指定します。
body:リクエストボディの受信開始から受信完了までの経過時間を監視する場合に指定します。
(b) 注意事項
-
このディレクティブを使用するためには,mod_reqtimeoutモジュールの組み込みが必要です。
- UNIX版の場合
-
LoadModule reqtimeout_module libexec/mod_reqtimeout.so
- Windows版の場合
-
LoadModule reqtimeout_module modules/mod_reqtimeout.so
また,モジュールトレースの出力の抑止を同時に設定することを推奨します。
HWSSuppressModuleTrace mod_reqtimeout.c
-
HTTP/2通信の場合,このディレクティブで経過時間は監視できません。
(c) 記述できる場所
httpsd.conf,<VirtualHost>
(d) 指定例
- (例1)
RequestReadTimeout header=10 body=30
リクエスト受信開始からリクエストヘッダ受信完了までのタイムアウト時間を10秒,リクエストボディの受信開始から完了までのタイムアウト時間を30秒に設定します。
- (例2)
RequestReadTimeout body=0
リクエスト受信開始からリクエストヘッダ受信完了までのタイムアウト時間を20秒に設定します。リクエストボディの受信開始から完了までのタイムアウトは設定しません。
(34) Require {user ユーザ名 〔ユーザ名 …〕|group グループ名 〔グループ名 …〕|valid-user|file-owner|file-group}
(a) 内容
AuthNameディレクティブ,AuthTypeディレクティブ,AuthUserFileディレクティブ(またはAuthGroupFileディレクティブ)と一緒に指定し,アクセス制限を定義します。
user:AuthUserFileディレクティブで指定したパスワードファイルに登録されているユーザのうち,ユーザ名で指定したユーザだけアクセスできます。
group:AuthGroupFileディレクティブで指定したグループファイルに登録されているグループ名で指定したグループに属するユーザだけがアクセスできます。
valid-user:AuthUserFileディレクティブで指定したパスワードファイルに登録されているすべてのユーザがアクセスできます。
file-owner:AuthUserFileディレクティブで指定したパスワードファイルに登録されているユーザのうち,アクセス対象ファイルのシステムの所有ユーザと一致しているユーザだけがアクセスできます(Windows版では指定できません)。
file-group:AuthGroupFileディレクティブで指定したグループファイルに登録されているグループ名で指定したグループに属するユーザのうち,グループ名がアクセス対象ファイルのシステムの所有グループに一致しているユーザだけがアクセスできます(Windows版では指定できません)。
(b) 記述できる場所
<Directory>,.htaccess
(c) 上書き許可
AuthConfigレベル