Apache2-需要多个具有相同域的项目在域名后使用不同的路径

Posted

技术标签:

【中文标题】Apache2-需要多个具有相同域的项目在域名后使用不同的路径【英文标题】:Apache2- need multiple projects with same domain that use different path after domain name 【发布时间】:2015-08-29 01:29:24 【问题描述】:

我有 2 个完全不同的项目,我想从同一个域名“mysimpledomainname.com”托管,IP 地址为 xx.xx.xxx.xx(非本地)

这两个项目位于 项目 1) /var/www/html/project1 项目 2) /var/www/html/project2

我想让这两个项目像这样解决

项目 1

mysimpledomainname.com

项目 2

mysimpledomainname.com/project2

我不想使用子域名。这是针对我的公共服务器上的一个项目,而不是我的本地计算机,所以我认为更新主机文件对我没有帮助。

我已经从 mysimpledomainname.com 加载了第一个项目(它已经在工作)。

在 sites-available 目录中,我有一个带有值的 conf 文件 mysimpledomainname.com.conf:

<VirtualHost *:80>
        ServerAdmin myemail@gmail.com
        DocumentRoot /var/www/html/project1
        <Directory /var/www/html/project1/>
                Options Indexes FollowSymLinks
                AllowOverride All
                Require all granted
                RewriteEngine On
        </Directory>
        ErrorLog $APACHE_LOG_DIR/error.log
        CustomLog $APACHE_LOG_DIR/access.log combined
</VirtualHost>

我认为我需要设置 2 个不同的 conf 文件才能执行此操作,但在四处搜索后我无法找到解决方案。 谁能帮我这个?您能否准确地发布两个不同的 conf 文件所需的内容,而不是给出一个简短的答案?

谢谢,

大卫

【问题讨论】:

【参考方案1】:

您只能有 1 个 VirtualHost 指令,因为这是每个 FQDN 定义的,并且您只想使用 mysimpledomainname.com

Project1 的配置正常。您只需要在路径/project2 下提供另一个目录。为此,您需要使用Alias 指令。

所以你的最终配置应该是这样的(当然,如果你愿意,你可以为每个子目录设置单独的 Directory 配置):

<VirtualHost *:80>
        ServerAdmin myemail@gmail.com
        DocumentRoot    /var/www/html/project1
        Alias /project2 /var/www/html/project2
        <Directory /var/www/html/>
                Options Indexes FollowSymLinks
                AllowOverride All
                Require all granted
                RewriteEngine On
        </Directory>
        ErrorLog $APACHE_LOG_DIR/error.log
        CustomLog $APACHE_LOG_DIR/access.log combined
</VirtualHost>

【讨论】:

非常感谢您的回答。我之前尝试过使用 Alias,但我的 Directory 配置指向我的 DocumentRoot。您的配置有效。 谢谢你。从昨天开始,我一直在寻找潜在的解决方案。大多数教程都假设使用子域。

以上是关于Apache2-需要多个具有相同域的项目在域名后使用不同的路径的主要内容,如果未能解决你的问题,请参考以下文章

apache2虚拟主机实现一个服务器绑定多个域名

具有多个域的通配符 SSL

如何重定向到具有多个域的https cpanel

Django VirtualHosting:如何在一个 VPS 上托管具有不同域的多个 django 项目

JS跨域调用之document.domain--相同基础域名页面之间的调用

.apache2 设置多个虚拟域名