web-dev-qa-db-ja.com

ドメイン内のサブURL /ページを/ etc / hostsファイルに追加する際の問題

Www.url.comをブロックせずにhostsファイルでwww.url.com/pageをブロックしたい

ステップ1
//////////////
127.0.0.1 www.Apple.comファイルに/etc/Hostを追加しました

ping www.Apple.comを実行すると、次のような望ましい結果が得られます。

64 bytes from localhost (127.0.0.1):

ブラウザでwww.Apple.comにアクセスしようとすると、目的のエラーが表示され、サイトwww.Apple.comにアクセスできません。

したがって、ブラウザのキャッシュに問題はありません。

ステップ2
////////////////////
次に、上の行に/iTunes/を追加して、127.0.0.1 www.Apple.com/iTunes/を作成しました

ping www.Apple.com/iTunes/を実行すると、目的の結果が得られます

64 bytes from localhost (127.0.0.1):

だが!!!!ブラウザにwww.Apple.com/iTunesと入力すると、AppleのiTunesサイトに接続できますが、これは予期しないことです。/etc/hostsファイルに127.0.0.1 www.Apple.com/iTunes/を書き込むと、ブラウザでwww.Apple.com/iTunes/と入力すると、127.0.0.1に送信されます。

結論
/////////////////etc/hostsファイルは/ iTunes /や/ iPod /などのサブURLを無視しますが、www.Appleなどのドメインでは完全に正常に機能します。 com

127.0.0.1 www.Apple.com/iTunes/が目的の結果を引き起こし、127.0.0.1 www.Apple.comが目的の結果を引き起こさないのはなぜですか?

127.0.0.1 www.Apple.comが望ましい結果をもたらすので、ブラウザのキャッシュを教えてはいけません。

[〜#〜] update [〜#〜]その後、hostsファイルで実行しようとしていることを実行できないことがわかりました。

/ etc/hostsファイルはドメインをリダイレクトすることしかできず、それらのドメイン内のページをリダイレクトすることはできません。

答えは解決しました。ありがとうございました。

2
Joshua Robison

名前が示すように、ホストファイルはURLではなくホスト用です。したがって、Apple.com/iTunesは何の意味もありません。それはホストではありません。

4
ETL

あなたは不可能な質問をしている。

あなたは正解が間違っていると主張しています、そして私たちはあなたにそれを言うことができません。

さらに、「ping」についての理解は限られています。URLにpingを実行することはできず、IPアドレスまたはドメイン名のみにpingを実行できます。それがまったく機能するのは、ある種の切り捨てを行っているためです。

アサーションのベースがどれだけあるかを理解するには、Webページリクエストがどのように機能するかを理解する必要があります。

URLがブラウザに入力されると、ブラウザはURLを部分に分割し、ドメイン名を抽出します。次に、ドメイン名をIPアドレスに解決します。 (hostsファイルが使用された場所)。

この後、ブラウザはIPアドレスに接続し、URLの残りの部分で「GET」コマンドを発行します(HTTPSを使用している場合は、暗号化されたセッションでこれを実行します)。 [FWIWは、ファイルサーバーが1つのIPで複数のドメイン名をサポートできるように、使用したドメイン名もWebサーバーに指定します]

したがって、問題はブラウザ自体にある必要があります。

あなたの投稿はまた、hostsファイルに何を入れたかに関していくぶん矛盾しているように見えます。

呼び出したURL(または「suburl」)を正しく配置することはできません。ここで問題が発生したと考えられますが、何を入力したかを正確に知らないと、その動作を再現することはできません。

3
davidgo