Mám ve zvyku vyvíjet a spouštět webové aplikace na doménách s příponou .l, takže třeba vývojová verze https://nette.org mi běží na http://nette.l. Což znamená přidat do souboru hosts řádek pro každou subdoménu, např.:

nette.l   127.0.0.1
www.nette.l   127.0.0.1
forum.nette.l   127.0.0.1

To je přinejmenším otravné. Kéž by hosts podporoval zápis pomocí wildcards, stačilo by napsat

*.l   127.0.0.1

a měl bych vystaráno. Jenže tohle nefunguje. Hledal jsem proto jiné řešení. K velkému překvapení, internet se návody nejen že nehemží, nenašel jsem vůbec nic.

Bylo zřejmé, že budu potřebovat najít lokální DNS server, který toto umožní. Narazil jsem na Simple DNS Plus. Po instalaci je potřeba jej manuálně aktivovat, tj. říci síťovému připojení, že má používat DNS server na adrese 127.0.0.1. Poté přímo v aplikaci v Tools / Options / Plug-Ins vytvořit instanci pluginu Regular Expressions a určit, že maska \.l$ se bude mapovat na adresu 127.0.0.1.

Funguje to výborně, jen cena $79 mi nepřipadá odpovídající, využívám-li okrajové vlastnosti jinak našlapaného programu.

Další možností je instalace multiplatformního opensource DNS serveru BIND. Stáhl jsem si distribuci pro Windows a nainstaloval do výchozího adresáře. Ovšem zapomeňte na nějaké klikací prostředí, BIND zná jen příkazovou řádku a textové konfigurační soubory. Pro mě španělská vesnice. Naštěstí mě pohled do dokumentace neodradil rovnou a podařilo se mi vytvořit konfigurační soubory. Ty se nacházejí v podadresáři etc, v mém případě je to c:\Windows\System32\dns\etc\. Na vašem počítači může být cesta odlišná.

Soubor etc\named.conf

options {
	directory "C:\Windows\System32\dns\etc"; // změňte pokud používáte jinou cestu.
};

zone "localhost" {
	type master;
	file "localhost";
};

zone "l" {
	type master;
	file "localhost";
};

zone "0.0.127.in-addr.arpa" {
	type master;
	file "localhost.rev";
};

Sourbor etc\localhost (využívající wildcard DNS record)

$TTL	86400
@	   IN SOA   @ root (
						2005022501	  ; serial
						3H			  ; refresh
						15M			 ; retry
						1W			  ; expiry
						1D )			; minimum

		IN NS		@
		IN A		 127.0.0.1
*.l.	IN A		 127.0.0.1

a nakonec soubor etc\localhost.rev

$TTL	86400
@	   IN	  SOA	 localhost. root.localhost.  (
							2005022501	  ; serial
							3H			  ; refresh
							15M			 ; retry
							1W			  ; expiry
							1D )			; minimum

		IN	  NS	  localhost.
1	   IN	  PTR	 localhost.

Poté stačí na síťovém připojení aktivovat DNS server na adrese 127.0.0.1 (viz postup výše) a spustit službu ISC BIND. Světe div se, ono to funguje!

C:\>ping nette.l

Příkaz PING na nette.l [127.0.0.1] - 32 bajtů dat:
Odpověď od 127.0.0.1: bajty=32 čas < 1ms TTL=128