309

*.localのリクエストがにリダイレクトされるように、ローカル開発マシンをセットアップしたいと思いますlocalhost。アイデアは、複数のサイトを開発するときにsite1.localsite2.localなどと呼ばれるvhostをApacheに追加し、それらをすべて解決することができますがlocalhost、Apacheはそれに応じて別のサイトにサービスを提供します。

私はWindowsXPを使用しています。

追加してみました

127.0.0.1       *.local

私のc:\windows\system32\drivers\etc\hostsファイルに、また試しました:

127.0.0.1       .local

どちらも機能していないようです。

異なるポート番号に設定できることは知っていますが、どのポートがどれであるかを思い出すのは難しいので、それは面倒です。

ローカルDNSサーバーなどをセットアップする必要はありません。何か提案はありますか?

4

20 に答える 20

454

アクリル DNS プロキシ (無料、オープン ソース) がその役割を果たします。独自のホスト ファイルを使用して、(自分のコンピューター上に) プロキシ DNS サーバーを作成します。hosts ファイルはワイルドカードを受け入れます。

公式サイトからダウンロード

http://mayakron.altervista.org/support/browse.php?path=アクリル&name=ホーム

アクリル DNS プロキシの設定

アクリル DNS プロキシを設定するには、上記のリンクからインストールしてから、次の場所に移動します。

  1. 始める
  2. プログラム
  3. アクリル DNS プロキシ
  4. 設定
  5. カスタム ホスト ファイルの編集 (AcrylicHosts.txt)

ファイルの末尾に次の行を追加します。

127.0.0.1   *.localhost
127.0.0.1   *.local
127.0.0.1   *.lc

アクリル DNS プロキシ サービスを再起動します。

  1. 始める
  2. プログラム
  3. アクリル DNS プロキシ
  4. 設定
  5. アクリルサービス再開

また、ネットワーク インターフェイス設定で DNS 設定を調整する必要があります。

  1. 始める
  2. コントロールパネル
  3. ネットワークとインターネット
  4. ネットワーク接続
  5. ローカル エリア接続のプロパティ
  6. TCP/IPv4

「次の DNS サーバーのアドレスを使用する」を設定します。

Preferred DNS Server: 127.0.0.1

次に、この回答を jeremyasnyder の回答 (を使用VirtualDocumentRoot) と組み合わせると、ディレクトリを作成するだけでドメイン/仮想ホストを自動的にセットアップできます。

于 2012-03-14T04:17:26.727 に答える
81

あなたの質問に答えると、Windows のホスト ファイルではワイルドカードを使用できません。

ただし、新しいサイトを機能させるためにホスト ファイルのみを変更したい場合は、次のように Apache を構成できます。構成を編集し続ける必要はありません。

http://postpostmodern.com/instructional/a-smarter-mamp/

基本的に、私のセットアップに基づく簡単な要約です。次を apache.conf ファイルに追加します。

 LoadModule vhost_alias_module modules/mod_vhost_alias.so

 NameVirtualHost *:80

  <Directory "/xampp/sites">
      Options Indexes FollowSymLinks Includes ExecCGI
      AllowOverride All
      Order allow,deny
      Allow from all 
  </Directory>

  <VirtualHost *:80>
      VirtualDocumentRoot c:/xampp/sites/%-1/%-2+/
  </VirtualHost>

これにより、次のようなエントリを追加できます。

127.0.0.1       test.dev

次に、ディレクトリ c:\xampp\sites\dev\test を作成し、そこに必要なファイルを配置すると、機能します。

もう 1 つのオプションは<Directory>、apache.conf でタグを使用し、 http://localhost/project/からページを参照することです。

于 2008-11-07T13:42:16.193 に答える
31

それは不可能だと思います。

とにかく、新しいサイトと場所を追加するたびにapache virtualrootエントリを変更する必要があるため、新しい名前をWindowsvhostファイルに同期するのは大きな作業ではありません。

更新:次の回答とこの回答へのコメントを確認してください。この回答は6歳で、もう正しくありません。

于 2008-09-26T07:41:53.983 に答える
6

コンピュータを再起動する代わりに、Windowsのコマンドプロンプトから「ipconfig / flushdns」を実行すると、hostsファイルの編集はそれほど簡単ではありません。

于 2010-10-17T17:43:54.717 に答える
5

「ワイルドカードは使用できません」というWindows ホスト ファイルの使用に関する投稿を見つけました。

過去に、追加のエントリをホスト ファイルに追加しただけです。なぜなら (前述のように)、既に apache 構成ファイルを編集している場合、追加の作業はそれほど多くないからです。

于 2008-09-27T23:58:24.477 に答える
4

ネットワーク管理者に相談して、ドメインを設定し(たとえば、「evilpuppetmaster.hell」)、そこにワイルドカードを設定して、すべて(* .evilpuppetmaster.hell')がIPに解決されるようにすることができます。

于 2008-09-26T08:02:56.583 に答える
4

これは、ローカル DNS サーバーでワイルドカード DNS を使用して機能しています。次のAようなレコードを追加します。*.local -> 127.0.0.1

ネットワーク設定では、ネットワーク上のマシンのドメイン サフィックス検索リストに選択したドメイン サフィックスが必要になると思います。そのため.local、会社の内部ドメイン (例: ) に置き換えてから、明確にするために.intサブドメインを追加することをお勧めします。.localhost.intそれは何のためです。

したがって、ネットワーク上のすべての人に対して*.localhost.int解決され、すべての開発者の構成ファイル設定は、エンドポイントがそのサブドメインに127.0.0.1ぶら下がっている場合に「機能する」でしょう。site1.localhost.intsite2.localhost.int

dnsmasqも良さそうですが、まだ試していません: http://ihaveabackup.net/2012/06/28/using-wildcards-in-the-hosts-file/

于 2013-07-23T13:46:18.957 に答える
3

ワイルドカードと正規表現をサポートする方法を提供するAngryHostsを試すことができます。実際には、これはhostsファイルの拡張および管理ソフトウェアです。その他の機能は@http://angryhosts.com/features/
で見ることができます

于 2012-03-05T13:41:42.547 に答える
3

Python で簡単な dns プロキシを作成しました。/etc/hosts のワイルドカード エントリを読み取ります。ここを参照してください: http://code.google.com/p/marlon-tools/source/browse/tools/dnsproxy/dnsproxy.py

Linux と Mac OS X でテストしましたが、Windows ではまだテストしていません。

于 2011-05-02T09:32:31.660 に答える
1

これには echoipdns を使用できます ( https://github.com/zapty/echoipdns )。

echoipdns local .local サブドメインに対するすべてのリクエストを実行すると、127.0.0.1 にリダイレクトされるため、xyz.local などを含むドメインはすべて 127.0.0.1 に解決されます。local を必要な名前に置き換えるだけで、他のサフィックスを使用することもできます。

Echoipdns はさらに強力です。ネットワーク内の他のマシンから URL を使用したい場合でも、構成なしで使用できます。

たとえば、マシンの IP アドレスが 192.168.1.100 の場合、常に 192.168.1.100 に解決されるドメイン名 xyz.192-168-1-100.local を使用できます。この魔法は、ドメイン名の 2 番目の部分の IP アドレスを確認し、DNS クエリで同じ IP アドレスを返すことによって、echoipdns によって行われます。リモート システムにアクセスするマシンで echoipdns を実行する必要があります。

echoipdns はスタンドアロンの DNS プロキシとして設定することもできるため、この DNS をポイントするだけで、毎回特別なコマンドを実行することなく上記のすべての利点を利用できるようになり、モバイル デバイスからも利用できるようになりました。

したがって、基本的に、これにより、ローカルおよびチーム環境のワイルドカード ドメイン ベースの DNS 開発が簡素化されます。

echoipdns は、Mac、Linux、および Windows で動作します。

注: 私は echoipdns の作成者です。

于 2015-01-09T10:12:45.123 に答える
0

そのようなワイルドカードを追加することはできませんが、少なくともテストのために必要なサイトの完全なリストを追加することはできますが、それは私にとっては十分に機能します。

127.0.0.1 サイト 1. ローカル
127.0.0.1 サイト 2. ローカル
127.0.0.1 サイト 3. ローカル
...

于 2012-06-28T20:21:00.880 に答える
0

目標を達成しようとする人のための全体的な構成は次のとおりです (開発環境でのワイルドカード、つまり XAMPP -- この例では、すべてのサイトが同じコードベースを指していると想定しています)

hosts ファイル (エントリを追加)

ファイル: %SystemRoot%\system32\drivers\etc\hosts

127.0.0.1   example.local

httpd.conf 構成 (仮想ホストを有効にする)

ファイル: \XAMPP\etc\httpd.conf

# Virtual hosts
Include etc\extra\httpd-vhosts.conf

httpd-vhosts.conf 構成

ファイル: XAMPP\etc\extra\httpd-vhosts.conf

<VirtualHost *:80>
    ServerAdmin admin@example.local
    DocumentRoot "\path_to_XAMPP\htdocs"
    ServerName example.local
    ServerAlias *.example.local
#    SetEnv APP_ENVIRONMENT development
#    ErrorLog "logs\example.local-error_log"
#    CustomLog "logs\example.local-access_log" common
</VirtualHost>

アパッチを再起動する

pac ファイルを作成します。

好きな場所にwhatever.pacとして保存し、ブラウザのネットワーク>プロキシ> auto_configuration設定にファイルをロードします(これを変更した場合はリロードします)

function FindProxyForURL(url, host) {
  if (shExpMatch(host, "*example.local")) {
    return "PROXY example.local";
  }
  return "DIRECT";
}
于 2014-08-19T19:56:09.700 に答える
0

書面による禁止事項は見つかりませんでしたが、慣例により、Windows のホスト ファイルは UNIX のホスト ファイルに厳密に従っており、そのファイルにワイルドカードのホスト名参照を入れることはできません。

マニュアルページを読むと、次のように書かれています。

DESCRIPTION
     The hosts file contains information regarding the known hosts on the net-
     work.  For each host a single line should be present with the following
     information:

           Internet address
           Official host name
           Aliases

と言っていますが、

     Host names may contain any printable character other than a field delim-
     iter, newline, or comment character.

それは実際のレベルからは真実ではありません。

基本的に、/etc/hosts ファイルを参照するコードは、ワイルドカード エントリをサポートしていません。

回避策は、事前にすべてのエントリを作成することです。スクリプトを使用して、一度に数百のエントリを配置することもできます。

于 2008-12-05T00:48:06.943 に答える
0

これはPi-Holeを使用して実行できます。「/etc/hosts」を編集して dns サービスを再起動するだけです。

nano /etc/hosts
pihole restartdns

例:

127.0.1.1       raspberrypi
192.168.1.1     w1.dev.net
192.168.1.2     w2.dev.net
192.168.1.3     w3.dev.net
于 2019-10-30T09:30:00.463 に答える
-1

http://www.no-ip.comなどの動的 DNS クライアントを使用できます。次に、外部 DNS サーバー CNAME *.mydomain.com を使用して mydomain.no-ip.com に接続します。

于 2009-04-30T21:03:48.460 に答える