LinuCレベル2 Webサーバーとプロキシサーバー 問24
Webサーバーとプロキシサーバー/Apache HTTPサーバーの設定と管理Apache HTTP Server 2.4の設定に次の1行を書いた。クライアントが「/docs/index.html」を要求したときの動作として適切なものはどれか。 Redirect /docs https://www.example.com/manual
当サイトのオリジナル問題(LinuCレベル2の出題範囲「Webサーバーとプロキシサーバー」に対応。実際の試験問題ではありません)
- Ahttps://www.example.com/manual へ、要求したパスを付けずに恒久的なリダイレクト(301)を返す
- Bhttps://www.example.com/manual/index.html の内容をサーバーが取得し、そのまま応答として返す
- Chttps://www.example.com/manual/index.html へ、一時的なリダイレクト(302)を返す
- D/docs と完全に一致する要求だけが対象になるため、/docs/index.html はリダイレクトしない
正解:C
解説
Redirectディレクティブ(mod_alias)は、指定したURLパスで始まる要求に対してリダイレクトを返します。一致した部分より後ろのパス(この例では/index.html)は、転送先のURLの後ろに付け加えられます。ステータスを省略した場合は一時的なリダイレクト(302)になり、恒久的にしたい場合は「Redirect permanent」または「Redirect 301」と書きます。サーバーが転送先の内容を取得して返すのはリバースプロキシ(mod_proxyのProxyPass等)の動作で、Redirectはクライアントに移動先を知らせるだけです。
選択肢ごとの解説
- A誤り。ステータスを省略したRedirectは302を返します。また、一致した部分より後ろのパスは転送先に付け加えられます。
- B誤り。これはリバースプロキシの動作です。Redirectはクライアントへ移動先のURLを返すだけです。
- C正しい。残りのパスを付け加えたURLへ、既定の302でリダイレクトします。
- D誤り。Redirectは指定したパスで始まる要求を対象にするため、/docs/index.html も対象になります。