具有多个服务器别名的Apache2动态vHost

具有多个服务器别名的Apache2动态vHost,apache,dynamic,dns,Apache,Dynamic,Dns,我正在尝试设置动态vHost,但遇到了一些麻烦。它不允许我设置多个ServerAlias <VirtualHost *:80> ServerAlias *.com ServerAdmin michael.ian.curry@gmail.com VirtualDocumentRoot /var/www/%1/production/html <Directory /> Option

我正在尝试设置动态vHost,但遇到了一些麻烦。它不允许我设置多个ServerAlias

<VirtualHost *:80>
        ServerAlias *.com
        ServerAdmin michael.ian.curry@gmail.com
        VirtualDocumentRoot /var/www/%1/production/html
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
        </Directory>
        LogLevel warn
</VirtualHost>
如果您有任何见解,请回复

--迈克尔克里

==编辑1==


示例redcrumer.com和www.redcrumer.com

/var/www/redcrusher/production/html
/var/www/redcrusher/production/html/
/var/www/redcrusher/production/html/sub
==编辑2==

下面的代码也不起作用

ServerAlias www.*.com *.com
你必须像这样使用

ServerAlias www.domain.com domain.com
ServerAlias *.domain.com
如果你想用那种方式,你必须遵守命令

ServerAlias www.*.com *.com 
问题是

VirtualDocumentRoot /var/www/%1/production/html
您使用动态VirtualDocumentRoot表示

对于redcrumer.com,VirtualDocumentRoot是

/var/www/redcrusher/production/html
/var/www/www.redcrusher/production/html
对于www.redcrumer.com,VirtualDocumentRoot是

/var/www/redcrusher/production/html
/var/www/www.redcrusher/production/html
我认为通过将ServerAlias分为三部分来解决问题

ServerAlias www.*.com
VirtualDocumentRoot /var/www/%1/production/html/
ServerAlias *.*.com
VirtualDocumentRoot /var/www/%2/production/html/%1 
ServerAlias *.com 
VirtualDocumentRoot /var/www/%1/production/html
我想应该有用

VirtualDocumentRoot:

Redcrumer.com

/var/www/redcrusher/production/html
/var/www/redcrusher/production/html/
/var/www/redcrusher/production/html/sub
www.redcrumer.com

/var/www/redcrusher/production/html
/var/www/redcrusher/production/html/
/var/www/redcrusher/production/html/sub
sub.redcrumer.com

/var/www/redcrusher/production/html
/var/www/redcrusher/production/html/
/var/www/redcrusher/production/html/sub
明白了

“www.*.com”必须在“*.com”之前执行这是因为ServerAlias正在设置动态域,并且必须在“较小”别名存在之前存在

示例:“www.*.com”、“dev.*.com”、“asdf.*.com”然后是“*.com”

vHost文件[production.conf]:

<VirtualHost *:80>
    ServerAlias www.*.com
    VirtualDocumentRoot /var/www/%2/production/html
    ServerAdmin michael.ian.curry@gmail.com
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /var/www/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>

    LogLevel warn
</VirtualHost>

<VirtualHost *:80>
    ServerAlias *.com
    VirtualDocumentRoot /var/www/%1/production/html
    ServerAdmin michael.ian.curry@gmail.com
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /var/www/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>

    LogLevel warn
</VirtualHost>

ServerAlias www.com
VirtualDocumentRoot/var/www/%2/production/html
服务器管理员迈克尔·伊恩。curry@gmail.com
选项如下符号链接
不允许超限
选项索引跟随符号链接多视图
允许超越所有
命令允许,拒绝
通融
日志级别警告
ServerAlias*.com
VirtualDocumentRoot/var/www/%1/production/html
服务器管理员迈克尔·伊恩。curry@gmail.com
选项如下符号链接
不允许超限
选项索引跟随符号链接多视图
允许超越所有
命令允许,拒绝
通融
日志级别警告
我希望这能帮助其他有这个问题的人


--MichaelCurry仍然不工作。添加此选项后,t仍然不起作用。示例:redcrumer.com&www.redcrumer.com您确定绑定系统已运行且不需要配置绑定吗。未使用本地DNS,是否正确使用NameCheap作为DNSDNS集?并且可以从域?redcrumer.com和www.redcrumer解析为相同的ip地址获得ping。