/ Etc / hosts içine joker karakter girişi nasıl yapılır?


85

Yakın zamanda bir test etki alanı için tüm alt etki alanlarını işaret etmek istedim, örnek.com diyelim ki localhost. 127.0.0.1'e çözümlemek için * .example.com'daki tüm istekleri işaret etmenin bir yolu var mı?


Yanıtlar:


103

O olur /etc/hostsdosya joker girişlerini desteklemez.

Dnsmasq gibi diğer hizmetleri kullanmanız gerekecek. Dnsmasq'ta etkinleştirmek dnsmasq.confiçin aşağıdaki satırı düzenleyip eklemeniz yeterlidir :

address=/example.com/127.0.0.1

5
joker karakter girişi için - adres = /. example.com/127.0.0.1
vivex

2
@Vivek Gerekli değil
Rahil Wazir

4
Ubuntu için dnsmasqkurulum bkz bu bir .
lemonsqueeze

5
Macosx kurulumu için passcuriosity.com/2013/dnsmasq-dev-osx oldukça yararlıdır.
aamir

4
rahilwazir, aslında, tüm alt alan adlarını istemiyorsanız öyle. # ayrıca joker olarak da çalışır. Dev123.example.com'u vb. Çalıştırmak için şahsen `address = / dev # .example.com / 127.0.0.1 kullanıyorum.
Ray Foss

8

Orijinal hedefi gerçekleştirmeye çalışanlar için yapılandırma (joker karakterlerin tümü aynı kod tabanına işaret ediyor - hiçbir şey yükleme, geliştirme ortamı yani XAMPP)

ana bilgisayar dosyası (bir girdi ekleyin)

dosya: / etc / hosts (Windows olmayanlar)

127.0.0.1   example.local

httpd.conf yapılandırması (sankonları etkinleştirin)

dosya: /XAMPP/etc/httpd.conf

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

httpd-vhosts.conf yapılandırması

dosya: 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'yi yeniden başlat

pac dosyası oluştur:

istediğiniz yere.pac olarak kaydedin ve ardından dosyayı tarayıcının ağına yükleyin> proxy> otomatik yapılandırma ayarları (bunu değiştirirseniz yeniden yükleyin)

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

Windows'ta ana bilgisayar dosyası için çalışmaz. Yalnızca www.example.com'u kabul eder
Andre Figueiredo

1
bu, firefox'taki pac dosyasını kullanan pencerelerde çalışır. Bunu birden fazla Windows makinesinde test ettim. ana bilgisayar dosyası yalnızca bir girdi gerektirir, pac dosyası alt etki alanlarını işler.
Daniel Jordi

1
Ben senin tepki noktasını özlüyor yüzden anladığım kadarıyla orijinal soru hiç ama ağ düzeyinde apache ilgili değil: /
Entropi


1
Bir ana bilgisayara (örn. Localhost) yönelik proxy istekleri için bir pac dosyası kullanırken, Apache gibi bir web sunucusunun REQUEST_URI değişkeninde yalnızca yol bileşeni yerine tam URL'yi (protokol ve ana bilgisayar adı dahil) kullanacağını lütfen unutmayın.
JSchirrmacher

5

dnsmasq kullan

Debian tabanlı bir dağıtım (ubuntu, nane ..) kullanıyormuşsunuz gibi, yüklü olup olmadığını kontrol edin

(sudo) systemctl status dnsmasq

Eğer sadece devre dışı ile başlamak

(sudo) systemctl start dnsmasq

Eğer bunu yüklemek zorunda, yazma

(sudo) apt-get install dnsmasq

Bunun /etc/dnsmasq.confgibi düzenlemeyi çözmek için etki alanları tanımlamak için

address=/example.com/127.0.0.1

* .example.com'u çözmek için

! Değişikliklerin etkili olması için dnsmasq'ı yeniden yüklemeniz gerekiyor!

systemctl reload dnsmasq
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.