【问题标题】:Default website in name-based apache virtual host configuration基于名称的 apache 虚拟主机配置中的默认网站
【发布时间】:2014-07-20 20:02:15
【问题描述】:

我正在使用基于名称的虚拟主机配置,以服务于不同的网站 来自同一个 IP 地址。例如:

http://www.myserver.com/website1
http://www.myserver.com/website2
http://www.myserver.com/website3
...
http://www.myserver.com/websiten

所有这些都存储在我的服务器中,在目录中:

/var/www/website1
/var/www/website2
/var/www/website3
...
/var/www/websiten

我想在浏览 URL 时使用 website1 作为默认网站:

http://www.myserver.com

为此,我正在尝试这种方法:

<VirtualHost *:80>
    DocumentRoot /var/www
    ServerName www.myserver.com

    Alias / /var/www/website1       ### ALIAS HERE

    <Directory /var/www/website1>
        Options Indexes FollowSymLinks
        Order allow,deny
        Allow from all
    </Directory>

    <Directory /var/www/website2>
        Options Indexes FollowSymLinks
        Order allow,deny
        Allow from all
    </Directory>

    ...

    <Directory /var/www/websiten>
        Options Indexes FollowSymLinks
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

但它不起作用。请帮忙。

【问题讨论】:

    标签: apache web default virtualhost


    【解决方案1】:

    你为什么不创建这样的主机文件:

    <VirtualHost *:80>
        ServerName www.myserver.com        
        DocumentRoot "/var/www/website1"
    </VirtualHost>
    

    然后在您的 var/www/website1/ 目录中创建符号链接以指向其他目录?

    cd /var/www/website1/
    ln -s /var/www/website2/ website2
    ln -s /var/www/website3/ website3
    

    如果你有不同的域名,那么你可以像这样配置虚拟主机而不用符号链接,第一个实例使用 ServerAlias 指令:

    <VirtualHost *:80>
        ServerName myserver.com
        ServerAlias www.myserver.com
        DocumentRoot "/var/www/website1"
    </VirtualHost>
    <VirtualHost *:80>
        ServerName trac.myserver.com
        DocumentRoot "/var/www/website2"
    </VirtualHost>
    

    【讨论】:

      【解决方案2】:

      我终于解决了我的问题。我已经换了

      Alias / /var/www/website1       ### ALIAS HERE
      

      通过此目录部分:

      <Directory /var/www/>
          Options Indexes FollowSymLinks MultiViews
          AllowOverride None
          Order allow,deny
          allow from all
          RedirectMatch ^/$ /website1/
      </Directory>
      

      RedirectMatch 解决了我的问题。现在,当我浏览这个 URL 时:

      http://www.myserver.com
      

      它会自动转换成这个:

      http://www.myserver.com/website1/
      

      我不确定这是否是解决我的问题的最佳方法,但至少它可以按预期工作。这还可以标记为 [已解决]。

      提前感谢您的帮助! :)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-12-13
        • 1970-01-01
        • 2011-07-22
        • 1970-01-01
        • 2016-04-24
        • 1970-01-01
        相关资源
        最近更新 更多