Я установил корневой каталог документа следующим образом: var / www / html
Я пытаюсь сделать следующее:
cms.domain.com -> var / www / html / cms
domain.com -> var / www / html / cms / sites / site1
Я пытаюсь добиться этого с помощью виртуальных хостов. Проблема в том, что я не могу установить VirtualDocumentRoot для каждого (под) домена, потому что сайты используют кучу скриптов и конфигураций, расположенных в var / www / html / includes, которые должны оставаться закрытыми, и приложения вызывают их с помощью $ _SERVER ["корень_документа"].
Я пробовал вот что:
<VirtualHost *:80>
ServerName domain.com
ServerAlias *.domain.com
ServerAlias www.domain.com
AliasMatch ^(.*)$ /cms/sites/site1/
DocumentRoot /var/www/html
<Directory /var/www/html>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<IfModule mod_dir.c>
DirectoryIndex index.php index.pl index.cgi index.html index.xhtml index.htm
</IfModule>
</VirtualHost>
и для поддомена:
<VirtualHost *:80>
ServerName cms.domain.com
ServerAlias *.cms.domain.com
AliasMatch ^(.*)$ /cms/
DocumentRoot /var/www/html
<Directory /var/www/html>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<IfModule mod_dir.c>
DirectoryIndex index.php index.pl index.cgi index.html index.xhtml index.htm
</IfModule>
</VirtualHost>
Не работает. Я предполагаю, что на самом деле я ищу что-то, чтобы добавить путь после documentroot, сохраняя при этом documentroot, как есть.
Здесь много конфликтующих конфигураций. Я бы предложил создать VirtualHost
для domain.com
и www.domain.com
и еще один для *.domain.com
и / или * .cms.domain.com с AliasMatch
. Также есть приоритет в VirtualHosts
поэтому domain.com должен быть последним.
Самый простой способ решить общую проблему с конфигурацией - использовать символическую ссылку /var/www/html/includes
каждому VirtualHost
каталог, и тогда у вас, по крайней мере, будет последовательность.