You need to learn more about DNS.
Changes in /etc/hosts are, by definition, local to that machine - no other machine anywhere is going to see what changes you've made to your /etc/hosts file.
If you want your site to be accessible to external users by multiple hostnames then you need to setup your DNS accordingly.
For example, it's perfectly legitimate to have your DNS looking something like this:
www.mydomain.net. A 123.45.67.89
mail.mydomain.net. CNAME www.mydomain.net.
foo.mydomain.net. CNAME www.mydomain.net.
bar.mydomain.net. CNAME www.mydomain.net.
In this setup, 'www.mydomain.net' has the IP address 123.45.67.89 (your public IP address) and mail, foo and bar are all aliases to the same address.
Remote users can use any of those names to get to your system, and Apache can be configured to serve different content depending on the hostname they use.