When you test subdomains locally using
localhost, it can be a pain since it won’t work out of the box for subdomains you haven’t added to /etc/hosts (since there is no support for wildcard subdomains). You can verify this easily enough:
~ $ ping john.localhost ping: cannot resolve john.localhost: Unknown host
So, when you want something more flexible - there is another easy answer. You can use “lvh.me”, a domain which resolves to 127.0.0.1 (for all subdomains):
~ $ ping lvh.me PING lvh.me (127.0.0.1): 56 data bytes
So, you’re actually set up for this right now:
~ $ ping john.lvh.me PING john.lvh.me (127.0.0.1): 56 data bytes
Pretty awesome! You need an internet connection to use it, so what I do normally is throw the subdomains that I know I’ll use into /etc/hosts - that way they work offline too!