具有动态别名的动态虚拟主机

时间:2016-01-21 14:36:36

标签: apache virtualhost httpd.conf mod-alias

我正在使用 DNSMasq 进行此设置。我遇到了Alias的问题,因为它根本不适用于动态虚拟主机。在Apache文档中没有VirtualAlias这样的东西。

我正在尝试设置我的新环境,就像我之前为.dev tld做的那样,但我遇到了问题,因为它需要更多配置。

这是功能齐全的.dev虚拟文档。

<VirtualHost *:80>
    ServerAlias *.dev
    UseCanonicalName Off
    VirtualDocumentRoot "/Users/nn/Sites/%1"
</VirtualHost>

这是我尝试使用VirtualDocumentRoot为所有项目设置的新环境中单个项目的全功能配置。

<VirtualHost *:80>
    DocumentRoot "/Users/nn/Sites/BaseApp/app"
    ServerName base.app

    Alias /scripts "/Users/nn/Sites/BaseApp/.tmp/scripts"
    Alias /styles "/Users/nn/Sites/BaseApp/.tmp/styles"

    <Directory "/Users/nn/Sites/BaseApp/.tmp">
        Options FollowSymLinks Multiviews
        Order allow,deny
        Allow from all
        Require all granted

        ErrorDocument 403 /403.php
        ErrorDocument 404 /404.php
        ErrorDocument 500 /500.php
    </Directory>
</VirtualHost> 

这是尝试为可能使用新环境的所有项目重新创建它。 (我需要帮助的那个)

<VirtualHost *:80>
    ServerAlias *.app
    UseCanonicalName Off
    VirtualDocumentRoot "/Users/nn/Sites/%1/app"

    Alias /scripts "/Users/nn/Sites/%1/.tmp/scripts"
    Alias /styles "/Users/nn/Sites/%1/.tmp/styles"

    <Directory "/Users/nn/Sites/%1/.tmp">
        Options FollowSymLinks Multiviews
        Order allow,deny
        Allow from all
        Require all granted

        ErrorDocument 403 /403.php
        ErrorDocument 404 /404.php
        ErrorDocument 500 /500.php
    </Directory>
</VirtualHost>

可以访问,但它会在scripts文件夹中搜索stylesapp,因此肯定Alias无效。任何提示,我都无能为力?

1 个答案:

答案 0 :(得分:2)

经过3天的长时间研究以及没有人回答的这个问题,我想到了以下几点:

  • Alias - 不适用于VirtualDocumentRoot,但DocumentRoot    仅
  • AliasMatch - 对VirtualDocumentRoot不起作用    仅DocumentRoot

因此,在创建动态主机时,这两个(AliasAliasMatch)无法使用。

如果以mode_rewrite以某种方式解决此问题,我将更新此答案,因为这似乎是唯一的解决方案。希望Apache创建:

  • VirtualAlias
  • VirtualAliasMatch

有一天不久的将来......