Windows 8 で hosts ファイルに変更を加えても、機能しません。変更は hosts ファイル内に残ります。
私がやろうとしているのは、次の行を使用してドメイン名 riddergarn.dev を 127.0.0.1 にリダイレクトすることです。
127.0.0.1 riddergarn.dev
私は avast! を使用しており、Windows Defender は無効になっているため、これが問題の原因ではありません。CMDipconfig /flushdns
で試してみましたが、それでも解決しません。
さまざまなサイトで答えを探してみましたが、今のところ見つかりません。誰か助けてくれるかもしれません。
編集: avast! を無効にしても問題は解決しませんでした。
私のhosts
ファイル (example.com も 127.0.0.1 に解決されません):
# localhost name resolution is handled within DNS itself.
127.0.0.1 localhost
# ::1 localhost
127.0.0.1 riddergarn.dev
127.0.0.1 example.com
私の%SYSTEMROOT%はC:\Windows
私は IIS ではなく、代わりに Apache を使用します。
ドメインを ping しようとすると、次のメッセージが表示されます。
C:\Users\Andreas>ping riddergarn.dev
Ping request could not find host riddergarn.dev. Please check the name and try a
gain.
答え1
これを書いているのは 2019 年 8 月です。この問題 (「hosts」ファイル コマンドが機能しない、またはアクティブにならない) は初めてです。強力だが古い Dell デスクトップ (XPS Gen5) で Windows 8.1 を使用しています。ブラウザーは Firefox (48、古いことは承知しています) で、Windows Explorer (11) も使用できます。私の PC のルート ディレクトリは C: です。
私は、不快で迷惑な広告主 (それ以外は無害な Web ページから発信される) からのオンライン ポップアップ イメージを簡単かつ効果的にブロックしたいと考えていましたが、(「悪意のある」ホスト名を 127.0.0.1 ローカル ホスト IP アドレスに関連付けることを目的とした) ホスト ファイル コマンドを実行することができませんでした。
さまざまなオンライン フォーラム サイトから多くの解決策を試しましたが、諦めかけていたときにようやくうまくいきました。素晴らしい気分です。問題は、hosts ファイル コマンドが機能しない理由が複数ある可能性があり、そのすべてを特定して解決する必要があることです。確認して試すべきこと (すべてではありません) をいくつか示します (専門知識のレベルに対して基本的すぎるものはご容赦ください)。
ホスト ファイルが
C:\Windows\System32\drivers\etc
(または同等の) サブディレクトリ/フォルダーに配置されていることを確認してください。レジストリに次のエントリがあることを確認してください:
\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\DataBasePath
正しいホストの場所を指します。例:
%SystemRoot%\System32\drivers\etc
(引用符なし)"C:\Windows\System32\drivers\etc\hosts" also works when the location of Windows is "C:\Windows."
変更した「hosts」ファイルを保存するときは、隠し文字を導入したり、ファイル名のサフィックス(「.txt」など)を追加したりしない信頼性の高いテキスト ファイル エディター(Windows のメモ帳など)のみを使用して、hosts ファイルを編集して保存してください。
作業の利便性と簡素化のため、
hosts.sav
元の hosts ファイルの名前を変更するか (たとえば、 に変更)、安全な場所に移動して保存し、新しい ANSI タイプの一時的なテスト hosts ファイルを作成して使用します (たとえば、Windows のメモ帳を使用して)。このファイルには、コマンドが 1 つだけ含まれます (「127.0.0.1google.com」(引用符なし) など)。その後に、完全に空白の行が 1 つ続きます (改行なし)。(任意の Web サイトを使用できます。私は強力な Google を選びます。) (必要に応じて、最初の行127.0.0.1<tab>localhost
も挿入して、合計 3 行にします。) このテスト hosts ファイルを使用すると、hosts ファイルとそのコマンドが「オン」でアクティブであるかどうかを簡単かつ迅速に確実に確認できます。Google がブラウザでブロックされていない場合は、hosts が機能していないか、何らかの理由でバイパスされています。ただし、Google.com (または選択したテスト サイト) がブロックされている場合は、hosts が機能しており、他の実際のコマンドに繰り返すことができる正常なコマンド ワード パターンが得られます。その後、Google 行の前に「#」を付けて無効にするか、その行を削除するだけです。ただし、このコマンドは、hosts ファイルを編集するときに (hosts が機能しなくなる可能性のあるエラーが発生する可能性がある)、hosts ファイルの状態 (機能しているかどうか) を継続的に確認するのに便利です。DOSコマンドを使用する
ipconfig /flushdns
(引用符なし) 必要に応じて、Windows の「コマンド プロンプト」機能内で、hosts ファイルの変更の合間に実行します。再起動するよりもはるかに簡単です。再起動は不要であることがわかりました。
テキスト エディターでホスト ファイルを開き、変更を加えてホストを保存すると (エディターを閉じずに)、Firefox は変更に反応します (つまり、更新ボタンまたはページ再読み込みボタンを押した後)。Firefox を停止して再起動する必要はありません。対照的に、Microsoft Internet Explorer (IE) では、変更 (たとえば、特定のブロックされた Web サイトへのアクセス) を有効にするには、IE を停止して再起動する必要があります。
hosts ファイル自体では次のようになります:
私は (a) 先頭にスペースを入れずにコマンド ライン言語 (数値 IP アドレス) を左端から開始し、数値アドレスとアルファベットのホスト名を区切るために一貫して 1 つのタブを使用します。アドレスとホストの間に 1 つのスペース、または複数のスペースを入れることも機能すると言われています。) いずれにしても、一貫性を保つことが重要かもしれません。
最後の行に達するまで、すべての行が「#」(ドキュメント用)で始まるか、コマンド ラインであることを確認します。最後の行に達したら、完全に空白の行で終了します。
繰り返しますが、ファイルの最後まで、各行を何らかの文字で始め、空白を入れないでください。その後、...
最後の行は空白である必要があります (文字、隠し文字など)。
たとえば、Google をブロックするには、次のいずれかのコマンドを使用できます。
127.0.0.1<tab>www.google.com
または
0.0.0.0<tab>www.google.com
127.0.0.1
エラーメッセージが表示される(Firefoxの場合)つなげられない。
0.0.0.0
(Firefox)エラーメッセージが表示されるサーバーが見つからない。
最後にやらなければならなかったこと (私の気難しいホスト コマンドが機能しないようにするため) は、アルファベットのホスト名から "http://" または "https://" を削除することでした。Web アドレス全体をコピーして、それをホスト ファイルのコマンド ラインに配置していました。私の愚かな初心者のミスです。この問題は発生していないようですが、他の人は発生する可能性があります。Web アドレスの "www." (存在する場合) は、ホスト コマンドでは問題にならないようですが、実際には必要である可能性があります。試してみてください。
答え2
Internet Explorer を使用していますか? 私の経験では、ホストの変更を認識させるには IE を再起動する必要があります (他のブラウザでは変更がすぐに反映されます)。
答え3
Windows 8 (具体的には Windows Defender) は、hosts ファイルへの編集をブロックします。
Defender には、この保護からファイルを除外するオプションがあります。
詳細については、このリンクを参照してください: http://www.howtogeek.com/122404/how-to-block-websites-in-windows-8s-hosts-file/