レス
前レス
元トピ
次レスタイトル
Re: 問題ID : 9284 Apacheの基本的な設定
フォーラム
最強WEB問題集LinuC/LPIC Lv2 202
投稿ユーザ(投稿日)
(2021/12/1)本文
横からお邪魔します。
Redirect ディレクティブってコンテキスト(設定が有効な範囲)としては「サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess」となかなか範囲広いですが、最上位の「サーバ設定ファイル」から考えたら「このHTTP(Web)サーバにアクセスした」時点で評価されるものと理解できます。
で、「このHTTPサーバにアクセス」ってどういうことかって考えると、例えばPing-tの場合なら「 https://ping-t.com 」へアクセスした時のことだと言えますよね。(ここはおそらく同意いただけると思います)
ではここにアクセスしたときに見えるものって何かって言うと、DocumentRootディレクティブで設定したパスなんですよね。設定としては
[code]
DocumentRoot /usr/web
[/code]
ってかけば、「 http://Webサーバアドレス/ 」へのアクセスに対して「/usr/web」の中身が返されるって設定です。(Index周りの話もありますがそこは省略)
ここまでの理解に問題なければ、次の話は簡単です。
HTTPに関するURLの書式って基本的にはこうなんですよね。(詳しくは https://ja.wikipedia.org/wiki/Uniform_Resource_Locator なんか見ると良いです)
[code]
スキーム(http or https)://ホスト名/パス?クエリ文字列
[/code]
スキームでSSLを使うかどうか、ホスト名でアクセス先のサーバアドレスを指定しています。その後ろの「パス(Path)」がここでhidaruma12さんが疑問に思われている「URL-path」のことです。
例えば、このスレッドのURLは「https://ping-t.com/modules/forum/index.php?topic_id=5184 」なので、
スキーム:https
ホスト名:ping-t.com
パス:/modules/forum/index.php
クエリ文字列:topic_id=5184
となります。
と言うことで、「URL-pathとは、URLのパス部」を指しているものになります。で、ここが「/」の場合は「このWebサーバのDocumentRootへアクセスしたい場合に指定するパス」を意味しています。
なので設問の
-----引用(始)-----
古いアドレス「 http://www.test.com/ 」へアクセスされた際は、permanentステータスをクライアントに返し、「 http://www.example.com/ 」にアクセスさせなおしたい。
-----引用(終)-----
をもう少し読み解くと、
・www.test.com ホストのURL-pathである「/」へのHTTPアクセスを(www.test.com ホスト上の設定によって)
・http://www.example.com/ にアクセスし直させる(Redirectさせる)
・返すHTTPステータスはpermanent(301:Moved Permanently)
・(記載はないが、リダイレクト先はLocationヘッダで指定され、そこにRedirectディレクティブの書式の最後の設定内容=http://www.example.com/ が含まれる)
となります。
すこーし掘り下げると、この問題の考え方としてはHTTPプロトコル的に考えた方が素直です。
・アクセスしてきたURLとは「Webサーバが指定するものではなくクライアントが指定したもの」です。
・サーバは「URLを解析し、どう処理するか」を判断し、その後の動作を決めます。
・例えばVirtualHostを使って1台の物理サーバ上で5サイトが稼働している場合、URLの「ホスト名」によってどのバーチャルホストへのアクセスかを判断し、「パス(URL-path)」によってそのバーチャルホストのDocumentRoot配下のどのファイルのデータを返すかを決定します。
・ただし、「パス=DocumentRootで指定したディレクトリ配下のパスと必ずしも1対1で対応するわけではなく、Webアプリケーションサーバなどでは「URL-pathとプログラムの処理が1対1で対応する」場合もあります。
興味があれば https://developer.mozilla.org/ja/docs/Learn/Server-side/First_steps/Web_frameworks とかみてみると良いと思います。
レス一覧
前レス
元トピ
次レス
Copyright (c) 2010
Ping-t All rights reserved.