Como te he hecho resaltar en tu edit, tienes ciertos errores con la configuración (no cierras comillas en el primer directory). Si es necesario que tengas dentro de tu ifModule:
Si tienes Apache 2.4 no es necesario que hagas esto. La syntaxis de VirtualHost es correcta:
Fuente: http://httpd.apache.org/docs/2.2/mod/core.html#virtualhost
Si necesitas permisos diferentes para cada puerto quizas puedas tener dos entradas de VirtualHost (no lo he probado). La primera para tu puerto 80 y la segunda para tu puerto 443. En el segundo configuras el directorio public para que haga deny from all y en el primer virtualHost lo configuras con las reglas que tienes ahora.
Tus configuraciones de VirtualHost pueden estar en un solo archivo.
Edit: Confusión entre carpetas.
Código (apache) [Seleccionar]
NameVirtualHost *:443
Si tienes Apache 2.4 no es necesario que hagas esto. La syntaxis de VirtualHost es correcta:
Código [Seleccionar]
Syntax: <VirtualHost addr[:port] [addr[:port]] ...> ... </VirtualHost>
Fuente: http://httpd.apache.org/docs/2.2/mod/core.html#virtualhost
Si necesitas permisos diferentes para cada puerto quizas puedas tener dos entradas de VirtualHost (no lo he probado). La primera para tu puerto 80 y la segunda para tu puerto 443. En el segundo configuras el directorio public para que haga deny from all y en el primer virtualHost lo configuras con las reglas que tienes ahora.
Tus configuraciones de VirtualHost pueden estar en un solo archivo.
Edit: Confusión entre carpetas.