Si vous faites pointer plusieurs domaines vers le même répertoire html public, et que le contenu réel réside en dehors du html public (racine web), vous pouvez le faire en deux étapes :
1) réécrire le répertoire par domaine, par ex.
<VirtualHost 127.0.0.1:80>
ServerName host_one.ca
RewriteEngine On
RewriteRule "/?images(.*)" "/www/shared/host_one/images/$1" [NC]
</VirtualHost>
<VirtualHost 127.0.0.1:80>
ServerName host_two.ca
RewriteEngine On
RewriteRule "/?images(.*)" "/www/shared/host_two/images/$1"
</VirtualHost>
2) Ajoutez ensuite les liens symboliques (alternativement, l'Alias)
ln -s /shared/host_one/images /www/html/images/host_one
ln -s /shared/host_two/images /www/html/images/host_two
Faites attention. Les images de host_two sont accessibles via host_one : domaine_un.ca/images/host_two/{filename}
A moins que vous n'ajoutiez des règles supplémentaires pour que tout ce qui n'est pas dans le répertoire actuel de l'hôte soit supprimé. Pour le VirtualHost host_one (j'ai fait no confirmer si cette règle fonctionne) :
# prevent showing content from other hosts
RewriteRule "/?images/!(host_one/.*)" /404 [NC,L]