Alias
"Alias" in Apache can be a directory alias, i.e.
Alias /phpmyadmin /usr/share/phpmyadmin
this means that you can use http://example.org/phpmyadmin/ and http://www2.example.org/phpmyadmin/ (each host on your apache instance) to access phpmyadmin.
Virtual host
Virtual hosts are used to host multiple domains in a single apache instance. You can have one virtual host for each IP address of your server or the same IP address, but different ports or the same IP address, the same port, but different host names. The latter are called "vhosts-based names."
Each virtual host is configured on its own and does not affect other vhosts.
There is also a ServerAlias directive that adds a different name to the virtual host based on the name.
source share