Да, вы можете сделать это.
Вам необходимо будет создать каталоги для каждого домена в% DOCUMENT_ROOT% (для этого я создал www.google.com и www.facebook.com :
root@alberta:/var/www/html# ls -ltr
total 32
-rw-r--r-- 1 www-data www-data 10701 Apr 16 11:01 index.html
drwxr-xr-x 15 www-data www-data 12288 Apr 16 14:52 mantis
drwxr-xr-x 2 www-data www-data 4096 May 18 15:02 www.google.com
drwxr-xr-x 2 www-data www-data 4096 May 18 15:04 www.facebook.com
Добавьте правило для перенаправления, используя в качестве базы% HTTP_HOST% (это домен, из которого поступает запрос). Я добавил правило в виртуальный хост по умолчанию /etc/apache2/sites-available/000-default.conf:
RewriteEngine on
RewriteRule ^/?(.*) %{DOCUMENT_ROOT}/%{HTTP_HOST}/$1 [L]
Что приводит к этой конфигурации:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
RewriteEngine on
RewriteRule ^/?(.*) %{DOCUMENT_ROOT}/%{HTTP_HOST}/$1 [L]
Include conf-available/serve-cgi-bin.conf
</VirtualHost>
Я эмулировал запрос, используя CURL, и он работает (Параметр - заголовок Host: сообщает apache, какой я домен) :
root@alberta:/etc/apache2/sites-available# curl --verbose --header 'Host: www.google.com' 'localhost'
Ответ - документ html в моем каталоге www.google.com:
< HTTP/1.1 200 OK
...
<p>ok google.com</p>
То же самое с фейсбуком:
root@alberta:/etc/apache2/sites-available# curl --verbose --header 'Host: www.facebook.com' 'localhost'
Ответ - документ в моей папке www.facebook.com:
< HTTP/1.1 200 OK
...
<p>my facebook.com</p>
Ура!