http://site1.bla.example.com、http://site2.bla.example.com、およびhttp://site2.bla.example.com/var/www/html
はすべて、私の DocumentRoot を指しています。
次のディレクトリ構造を考えると、 http ://site1.bla.example.com/files/somefile1.pngを返すsomefile1.png
、http://site2.bla.example.com/files/somefile2.pngを返すsomefile2.png
、などを希望します。 .
/var/www/html/index.php
/var/www/files/site1/somefile1.png
/var/www/files/site2/somefile2.png
/var/www/files/site3/somefile3.png
これはどのように達成されますか?以下は私の失敗した試みです。
<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>