That does not work (as you already might found out). If you run only one host, you may configure it as the standard host in the httpd.conf file.
If you want to run more than one host, you have to use VirtualHost FOR ALL your hosts, there is no more a "standard host", the corresponding configuration in httpd.conf is IGNORED by Apache. Instead the FIRST VirtualHost becomes the default host, so if somebody requests a hostname from your server, which is not declared as a VirtualHost, Apache takes the FIRST VirtualHost declaration instead.
Instead of only one VirtualHost you must at least declare two VirtualHost, one for http://www.main_page.com
and the other for http://www.vhost.com
. I always recommend to declare one explicit "_defaul_" VirtualHost as very first VirtualHost, in case someone enters http://192.168.122.103
in his browser, because this is neither http://www.vhost.com
, but Apache will take simply the first of these two if you dont declare a default VirtualHost as first entry. In that default VirtualHost you may show an error page or whatever you want.
Most important: either there is NO VirtualHost, or ALL Hosts are VirtualHosts.