动态虚拟主机 - 基于域的根文件夹

Dynamic Virtual host - root folder based on domain

我有我的虚拟主机

<VirtualHost *:80>
ServerAdmin webmaster@localhost
UseCanonicalName Off
VirtualDocumentRoot /home/xxx/www/%0
AssignUserID UserName xxx
<Directory /home/xxx/www/>
 Options -Indexes +FollowSymLinks
 AllowOverride All
 Allow from all
 Require all granted
</Directory>
ServerAlias xxx.com *.xxx.com
php_admin_value open_basedir "/home/xxx/www:/home/xxx/tmp"
php_admin_value upload_tmp_dir /home/xxx/tmp
php_admin_value session.save_path /home/xxx/tmp
ErrorLog /home/xxx/error.log
# Possible values include: debug, info, notice, warn, error, crit, alert, emerg.
LogLevel warn
CustomLog /home/xxx/access.log combined
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</VirtualHost>

我有网站:www.xxx.com、preview1.xxx.com、preview2.xxx.com、preview3.xxx.com、somerandomsubdomain.xxx.com

www.xxx.com 和 previev1.xxx.com 等每个域和子域都指向正确的文档根目录,因此我可以动态添加子域。

问题是:我如何轻松地为 preview3.xxx.com 指定不指向 /home/xxx/www/preview3.xxx.com 而是指向 /home/xxx/www/preview3.xxx.com/www 的例外?

在同一文件中创建另一个 VirtualHost,在当前文件之上。使用相同的配置,只需更改这两个值:

#VirtualDocumentRoot /home/xxx/www/%0
DocumentRoot /home/xxx/www/preview3.xxx.com/www

#ServerAlias xxx.com *.xxx.com
ServerName preview3.xxx.com