I can confirm that, for me:
DNS shows I would expect:
lessico.pistacchioso.com is an alias for pistacchioso.com.
pistacchioso.com has address 220.127.116.11
http://18.104.22.168:8000/ appears to show the right page
- Browsing to
http://lessico.pistacchioso.com:8000/ shows the same page
the default web page for this server. because
no content has been added, yet.
I think that what you're missing here is that you're telling the browser to use the
http protocol - right there in the first 4 characters of the url,
Browsers understand that, unless another port number is specified,
http means port 80, so
http://lessico.pistacchioso.com/ is interpreted as if it were
http://lessico.pistacchioso.com:80/. However, in the snippet you've provided above, you've used
VirtualHost *:8000 to tell Apache to only listen on port 8000 for this request.
This explains why
http://lessico.pistacchioso.com:8000/ works: you're explicitly telling the browser to use port 8000; and you've told Apache to listen on port 8000 and what to do with requests received there.
Change that line to
VirtualHost *:80 and you'll be answering traffic on port 80 instead. The
ServerName directive you have on the next line ensures that only traffic for the host
lessico.pisacchioso.com will be handled by this vhost - all other hostnames will still fall back to the default vhost with the default content you're already so familiar with :)
Edited to add:
There's one other wrinkle. You said:
if I visit http://lessico.pistacchioso.com/ I still see the register's
courtesy page. The DNS already updated, because pistacchio.com shows
apache's standard default page
That's different from what I see - I get Apache's standard page on
http://lessico.pistacchioso.com/. I'm guessing that either your DNS host updated something between when you posted and when I responded; or possibly you still have an old record cache. I'd suggest checking this with
host as I've done above to make sure you're seeing the correct records.