设置子域名通配符:配置 A 记录、VirtualHost...仍然不起作用

设置子域名通配符:配置 A 记录、VirtualHost...仍然不起作用

在 CentOS 上运行 Apache,尝试设置通配符子域名,基本上我希望 .mydomain.com 指向 mydomain.com

使用 cPanel,我添加了 *.mydomain.com 使用 WHM,我确保 A 记录指向正确的 IP。

我创下了我的 A 记录:

* 14400 IN X.x.x.x 

我的httpd.conf:

 ServerName _wildcard_.mydomain.com
    ServerAlias *.mydomain.com
DocumentRoot /home/mydomain/public_html
ServerAdmin [email protected]
UseCanonicalName Off

## User userdomain# Needed for Cpanel::ApacheConf
UserDir enabled userdomain
<IfModule mod_suphp.c>
    suPHP_UserGroup userdomain userdomain
</IfModule>
<IfModule !mod_disable_suexec.c>
    <IfModule !mod_ruid2.c>
        SuexecUserGroup usergrdomain userdomain
    </IfModule>
</IfModule>
<IfModule mod_ruid2.c>
    RUidGid userdomain userdomain
</IfModule>
ScriptAlias /cgi-bin/ /home/mydomain/public_html/cgi-bin/


# To customize this VirtualHost use an include file at the following location
# Include "/usr/local/apache/conf/userdata/std/2/mydomain/wildcard_safe.mydomain.com/*.conf"

我在 httpd.conf 中将 VirtualHost 设置为指向域根目录。重新启动了 Apache、服务器、dns,仍然没有任何反应。

我花了几个小时研究这个问题,按照说明,正确设置一切。

我错过了什么?

答案1

ServerAlias 指令仅在 VirtualHost 上下文中有效。

看:http://httpd.apache.org/docs/2.2/mod/core.html#serveralias

你的配置应该是:

<VirtualHost *:80>
    ServerName _wildcard_.mydomain.com
    ServerAlias *.mydomain.com
    DocumentRoot /home/mydomain/public_html
    ServerAdmin [email protected]
    UseCanonicalName Off

    ## User userdomain# Needed for Cpanel::ApacheConf
    UserDir enabled userdomain
    <IfModule mod_suphp.c>
        suPHP_UserGroup userdomain userdomain
    </IfModule>
    <IfModule !mod_disable_suexec.c>
        <IfModule !mod_ruid2.c>
            SuexecUserGroup usergrdomain userdomain
        </IfModule>
    </IfModule>
    <IfModule mod_ruid2.c>
        RUidGid userdomain userdomain
    </IfModule>
    ScriptAlias /cgi-bin/ /home/mydomain/public_html/cgi-bin/
</VirtualHost>

相关内容