例えば、ドメインは一緒だけど、一階層目のディレクトリでサイトが異なる場合。
http://hogehoge.co.jp/a/
http://hogehoge.co.jp/b/
こういった場合に普通にバーチャルホスト切ると、
ログファイルが一緒になってしまい、混乱を招くので条件によってログファイルの出力先ファイルを変更するようにしました。
最終的なバーチャルホストはこんな感じ
<VirtualHost *:80>
ServerAdmin admin@hogehoge.jp
DocumentRoot /path/to/dir/web
ServerName hogehoge.jp
ErrorLog /path/to/dir/logs/error_log
SetEnvIf Request_URI "^\/site_a.*$" a_log
ErrorLog /path/to/dir/logs/error_log env=a_log
CustomLog /path/to/dir/logs/access_log common env=a_log
SetEnvIf Request_URI "^\/site_b.*$" b_log
#ErrorLog /path/to/dir2/logs/error_log env=b_log
CustomLog /path/to/dir2/logs/access_log common env=b_log
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !^/site_a
RewriteCond /path/to/dir/web/%{REQUEST_FILENAME} -d
RewriteCond /path/to/dir/web/%{REQUEST_FILENAME} -s [OR]
RewriteCond /path/to/dir/web/%{REQUEST_FILENAME} -l
RewriteRule ^(.*)$ /site_a$1 [PT]
Alias /site_a /path/to/dir/web/
RewriteCond %{REQUEST_FILENAME} !^/site_b
RewriteCond /path/to/dir2/web/%{REQUEST_FILENAME} -d
RewriteCond /path/to/dir2/web/%{REQUEST_FILENAME} -s [OR]
RewriteCond /path/to/dir2/web/%{REQUEST_FILENAME} -l
RewriteRule ^(.*)$ /site_b$1 [PT]
Alias /site_b /path/to/dir2/web/
</IfModule>
</VirtualHost>