Я установил корневой каталог документов вот так: var / www / html
Я пытаюсь сделать следующее:
cms.domain.com -> var / www / html / cms
domain.com -> var / www / html / cms / sites / site1
Я пытаюсь добиться этого с помощью виртуальных хостов. Проблема в том, что я могу » t установить VirtualDocumentRoot для каждого (под) домена, потому что сайты используют кучу скриптов и конфигураций, расположенных в var / www / html / includes, которые должны оставаться закрытыми, и приложения вызывают их с помощью $ _SERVER ["document_root" ].
Я пробовал следующее:
<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>
Не работает. Я предполагаю, что на самом деле я ищу что-нибудь, чтобы добавить путь после корня документа, сохранив при этом корень документа таким, какой он есть.
У вас много конфликтующих конфигураций. Я бы предложил создать VirtualHost
для domain.com
и www.domain.com
и еще один для *. Domain.com
и / или * .cms.domain.com с AliasMatch
. Также существует приоритет в VirtualHosts
, поэтому domain.com должен быть последним.
Самый простой выход из общей проблемы конфигурации - использовать символическую ссылку / var / www / html / includes
на каждый каталог VirtualHost
, и тогда у вас, по крайней мере, будет согласованность.