【问题标题】:Apache2 Dynamic vHost with multiple ServerAlias具有多个 ServerAlias 的 Apache2 动态 vHost
【发布时间】:2013-01-19 23:34:33
【问题描述】:

我正在尝试设置动态 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>

上述 vHost 仅适用于 '.com' 我需要它才能适用于 'www..com' 和 '*.com' 我认为将 ServerAlias 设置为可以修复它,但它不起作用。

ServerAlias *.com www.*.com

如果您有任何见解,请回复

--迈克尔库里

==编辑 1==

示例 redcrusher.com 和 www.redcrusher.com

==编辑 2==

下面的代码也不起作用

ServerAlias www.*.com *.com

【问题讨论】:

    标签: apache dynamic dns


    【解决方案1】:

    想通了!

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

    示例:'www.*.com'、'dev.*.com'、'asdf.*.com' THEN '*.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>
    

    我希望这可以帮助其他遇到此问题的人!

    --迈克尔库里

    【讨论】:

      【解决方案2】:

      你必须这样使用

      ServerAlias www.domain.com domain.com
      ServerAlias *.domain.com
      

      如果你想使用这种方式,你必须遵守命令

      ServerAlias www.*.com *.com 
      

      问题出在

      VirtualDocumentRoot /var/www/%1/production/html
      

      你使用一个动态的 VirtualDocumentRoot 这意味着

      对于 redcrusher.com,VirtualDocumentRoot 是

      /var/www/redcrusher/production/html
      

      对于 www.redcrusher.com,VirtualDocumentRoot 是

      /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
      

      我认为应该工作

      虚拟文档根目录:

      redcrusher.com

      /var/www/redcrusher/production/html
      

      www.redcrusher.com

      /var/www/redcrusher/production/html/
      

      sub.redcrusher.com

      /var/www/redcrusher/production/html/sub
      

      【讨论】:

      • 还是不行。添加了这个,t仍然不起作用。示例:redcrusher.com 和 www.redcrusher.com
      • 你确定绑定系统已经运行和配置
      • 不需要绑定。不使用本地 DNS,使用 NameCheap 作为 DNS
      • DNS 设置正确吗?并且可以从域获取 ping 吗?
      • redcrusher.com 和 www.redcrusher 解析到相同的 ip 地址。
      猜你喜欢
      • 2014-12-19
      • 2018-04-29
      • 2018-11-11
      • 2013-08-24
      • 2013-08-24
      • 1970-01-01
      • 2021-09-29
      • 2017-07-26
      • 2016-12-06
      相关资源
      最近更新 更多