使用 Apache2 重定向 VirtualHost 中的文件夹

使用 Apache2 重定向 VirtualHost 中的文件夹

我在一台小型家用服务器上设置了 Apache2,并尝试通过它运行 Transmission。它运行得很好,但我遇到了一个问题,即我为 transmission vhost 设置的重定向也在主站点上运行。这将导致无法在主站点上托管任何其他 Web 应用程序。这是我的 http-vhosts.conf 文件,其中包含重定向:

NameVirtualHost *:80
<VirtualHost *:80>
    ServerName transmission.blah.fakedns.com
    ServerAlias transmission.blah.fakedns.com

    ProxyRequests Off

    ProxyPass /transmission http://127.0.0.1:9091/transmission
    ProxyPassReverse /transmission http://127.0.0.1:9091/transmission
    Redirect permanent / /transmission/web/

    <Location /transmission>
        Order Allow,Deny
        Allow from All
    </Location>
</VirtualHost>

我希望重定向仅在 transmission 子域下有效。目前,如果我访问 blah.fakedns.com/,我会被重定向到 blah.fakedns.com/transmission/web/,并且加载正常 - 但我不想这样。上面的 vhosts 文件有问题吗?

此外,带有 mod_proxy 的反向代理也应该只适用于子域,所以我遇到了同样的问题。

我知道我一直在使用术语“子域”来指代子子域,但是我已将其全部连接到 DynDNS 帐户,因此我只能添加新的子子域,这会是个问题吗?

提前感谢你的帮助!

答案1

您是否已为服务器名称“blah.fakedns.com”定义了虚拟主机?

如果您没有这样做,当 Apache 中任何地方未定义主机名时,Apache 就会将第一个加载的 vhost 作为“后备”vhost。

这是有道理的,因为如果你没有为你想要访问的应用程序定义其他虚拟主机,Apache 将为你提供它已加载的第一个虚拟主机(可能是关于 Transmission 的虚拟主机)

我希望这可以帮助你。

相关内容