I am developing a site, which will make use of any given [variation of] subdomain name part (that is, the part prefixed before the host name and, optionally, the TLD part). I would imagine that in production, that would be an easy feat - make sure the DNS for second-level domain name part points to an IP, set up Apache2 virtual host to listen on that (or any) IP port 80, and just use PHP to make decisions based on the "Host" request header.

However, currently the site is localhost, since I am developing it using my workstation, so first I patched the /etc/hosts to include:

127.0.0.1 mydomain

I only used one name part (arguably a custom TLD) so as to not interfere with the Internet domain names. Then I set up a VirtualHost directive for Apache 2.2 like:

<VirtualHost *:80>
ServerName mydomain

But now I can see that f.e. example.mydomain does not point to localhost, meaning the the /etc/hosts addition is not effective for "something.mydomain". It appears the rules are taken verbatim, and also I have checked that wildcards like *.mydomain are not allowed.

Thanks Karol. That did the trick. HOWEVER, requests for resolving "mydomain" (without any prefix) don't work without also specifying "mydomain 127.0.0.1" in /etc/hosts, which suggests that dnsmasq interprets the syntax as applicable to *.mydomain - i.e. only with a subdomain name part prefixing the dot and the rest.
–
amnApr 23 '10 at 19:16

By my side it works without /etc/hosts modifications. Setting example.com redirects *.example.com and example.com too. But maybe there's some limitation here about TLDs, I don't know. Are you using literal mydomain? ;-) Maybe mydomain.localnet would work?
–
Karol PiczakApr 23 '10 at 19:30

@user41339 - the correct response to a good answer that fixes your problem is to check the checkmark beside the vote count. An upvote is also a good present if you haven't done so.
–
Paul TomblinApr 23 '10 at 19:43