My first guess would be that because you are essentially redirecting root "/" to root "/" over and over again is why you are getting the endless loop error.
When you access the page via http is finds the .htaccess and redirects the page to https but then it finds the .htaccess file and redirects again.
Well that's my best guess... but you say you can access it when you type in the address, which is weird.
one possible solution is to use different directories for each virtual server. so for your http virtual server use a dir like /var/www/html and for your ssl virtual server use something like /var/www/https
so that you put your website in https dir and your htaccess in the html dir...
something like that should fix your problem...
also, have a look at this thread
http://codingforums.com/showthread.php?t=191665