ワイルドカードエントリを/ etc / hostsに入れる方法は?


85

最近、テストドメインのすべてのサブドメイン、たとえばexample.comをローカルホストにポイントしたいと思いました。* .example.com上のすべてのリクエストを127.0.0.1に解決するように指示する方法はありますか?


回答:


103

/etc/hostsファイルがワイルドカードエントリをサポートしていない場合があります。

dnsmasqなどの他のサービスを使用する必要があります。dnsmasqで有効にするにはdnsmasq.conf、次の行を編集して追加するだけです。

address=/example.com/127.0.0.1

5
ワイルドカードエントリの- 。アドレス= / example.com/127.0.0.1
vivex

2
@Vivek必須ではありません
Rahil Wazir 2015

4
Ubuntuのdnsmasqセットアップについては、こちらをご覧ください。
レモンスクイーズ2015年

5
MacOSXのセットアップのためのpassingcuriosity.com/2013/dnsmasq-dev-osxかなり便利です。
aamir 2015年

4
rahilwazir、実際には、すべてのサブドメインが必要ない場合です。#ワイルドカードとしても機能します。私は個人的に `address = / dev#.example.com / 127.0.0.1を使用して、dev123.example.comなどを機能させています。
レイ・フォス

8

元の目標を達成しようとしている人のための構成は次のとおりです(ワイルドカードはすべて同じコードベースを指しています-何もインストールしない、開発環境、つまりXAMPP)

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

ファイル:/ etc / hosts(Windows以外)

127.0.0.1   example.local

httpd.conf構成(vhostsを有効にする)

ファイル:/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>

Apacheを再起動します

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

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

function FindProxyForURL(url, host) {
  if (shExpMatch(host, "*example.local")) {
    return "PROXY example.local";
  }
  return "DIRECT";
}

Windowsのhostsファイルでは機能しません。www.example.comのみを受け入れます
アンドレフィ

1
これは、Firefoxのpacファイルを使用するWindowsで機能します。私はこれを複数のWindowsマシンでテストしました。ホストファイルは1つのエントリのみを必要とし、pacファイルはサブドメインを処理します。
ダニエルジョルディ

1
私が理解している元の質問は、アパッチに関するものではなく、ネットワークレベルに関するものなので、あなたの回答は要点を見逃していると思います:/
enTropy 2017


1
pacファイルを使用してリクエストをホスト(ローカルホストなど)にプロキシする場合、ApacheなどのWebサーバーは、パスコンポーネントだけでなく、REQUEST_URI変数の完全なURL(プロトコルとホスト名を含む)を使用することに注意してください。
JSchirrmacher 2017年

5

dnsmasqを使用する

Debianベースのdist(ubuntu、mint ..)を使用しているふりをして、

(sudo) systemctl status dnsmasq

無効になっている場合は、

(sudo) systemctl start dnsmasq

インストールする必要がある場合は、

(sudo) apt-get install dnsmasq

/etc/dnsmasq.confこのように編集を解決するドメインを定義するには

address=/example.com/127.0.0.1

* .example.comを解決するには

!変更を有効にするには、dnsmasqをリロードする必要があります。

systemctl reload dnsmasq
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.