http://site1.bla.example.com, http://site2.bla.example.com, and http://site2.bla.example.com all point to /var/www/html
which is my DocumentRoot.
Given the following directory structure, I would like http://site1.bla.example.com/files/somefile1.png to return somefile1.png
, http://site2.bla.example.com/files/somefile2.png to return somefile2.png
, etc.
/var/www/html/index.php
/var/www/files/site1/somefile1.png
/var/www/files/site2/somefile2.png
/var/www/files/site3/somefile3.png
How is this accomplished? Below is my unsuccessful attempt.
<VirtualHost *:80>
ServerName example.com
ServerAlias *.bla.example.com
DocumentRoot /var/www/html
#This seems to work, but I wish to use regex
# Alias /files/site1 /var/www/files/site1
#This doesn't work
AliasMatch ^/files/(.+)$ /var/www/files/$1
<Directory "/var/www/html">
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^(.+)\.bla\.example\.com [NC]
RewriteRule ^public/([^//]+)$ public/%1/$1 [NC,L]
</Directory>
</VirtualHost>