Re: 問題ID : 9284 Apacheの基本的な設定

この質問の投稿一覧へ

なし Re: 問題ID : 9284 Apacheの基本的な設定

msg# 1.4.1
depth:
2
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2021-12-4 11:28
arashi1977  長老 居住地: 広島  投稿数: 1715
横からお邪魔します。

Redirect ディレクティブってコンテキスト(設定が有効な範囲)としては「サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess」となかなか範囲広いですが、最上位の「サーバ設定ファイル」から考えたら「このHTTP(Web)サーバにアクセスした」時点で評価されるものと理解できます。

で、「このHTTPサーバにアクセス」ってどういうことかって考えると、例えばPing-tの場合なら「 https://ping-t.com 」へアクセスした時のことだと言えますよね。(ここはおそらく同意いただけると思います)

ではここにアクセスしたときに見えるものって何かって言うと、DocumentRootディレクティブで設定したパスなんですよね。設定としては
DocumentRoot /usr/web
ってかけば、「 http://Webサーバアドレス/ 」へのアクセスに対して「/usr/web」の中身が返されるって設定です。(Index周りの話もありますがそこは省略)

ここまでの理解に問題なければ、次の話は簡単です。
HTTPに関するURLの書式って基本的にはこうなんですよね。(詳しくは https://ja.wikipedia.org/wiki/Uniform_Resource_Locator なんか見ると良いです)
スキーム(http or https)://ホスト名/パス?クエリ文字列
スキームで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) 2020 Ping-t All rights reserved.