# ************************************
# Vhost template in module puppetlabs-apache
# Managed by Puppet
# ************************************
# 
<VirtualHost *:80>
  ServerName ofbiz-vm3.apache.org

  ## Vhost docroot
  DocumentRoot "/var/www/ofbiz/big-files"

  ## Directories, there should at least be a declaration for /var/www/ofbiz/big-files

  <Directory "/var/www/ofbiz/big-files">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Require all granted
  </Directory>

  ## Logging
  ErrorLog "/var/log/apache2/ofbiz-bigfiles_error.log"
  ServerSignature Off
  CustomLog "/var/log/apache2/ofbiz-vm-bigfiles-80_access.log" combined 

  ## Server aliases
  ServerAlias ofbiz-bigfiles.apache.org

  ## Custom fragment
  RedirectMatch permanent ^/(.*)$ https://ofbiz-vm3.apache.org/$1

</VirtualHost>
