If you don't have http redirect, you would have to explicitly add https to all of your requests to the server. Why don't you tell Google that your site is https in your google panel, and leave the redirect for people who just type yourdomain.com into their browser.
Also, your redirect should be at the top of your config so it doesn't have to go through all the bs before redirecting. That can slow it down. as far as i'm aware, your non-ssl only needs 3 configurations. ServerName, DocumentRoot and Redirect