将特定 URL 重定向到 apache 中的其他虚拟主机

将特定 URL 重定向到 apache 中的其他虚拟主机

我的 Web 服务器上运行着两个版本的非常小的 ruby​​-on-rails 应用程序。一个在外部提供服务(生产),另一个仅在内部网 URL 上提供服务(暂存)。因此,我设置了两个虚拟主机,它们运行良好。

我的目标是在临时服务器的域下提供代码库生成的文档,但只需设置不同的 vhost 和 docroot 并将所有静态 HTML 文件转储到那里。我不清楚如何在 httpd.conf 中设置它。

因此,目标是:

staging.foo.com/ -> rails app vhost (指向 /var/www/rails/foo/)

staging.foo.com/doc/ -> 文档虚拟主机 (指向 /var/www/doc/foo/)

抱歉,问题问得比较笨拙;我很确定这可以通过 mod_rewrite 来完成,但是在阅读了文档几次之后,我仍然不知道如何完成这一壮举。

答案1

您可以指定重写规则,如本例所示:

<VirtualHost 172.20.30.40>
   DocumentRoot /www/subdomain/sub2
   ServerName www.sub2.domain.tld
   ServerPath /sub2/
   RewriteEngine On
   RewriteRule ^(/sub2/.*) /www/subdomain$1
 </VirtualHost>

使用服务器路径像你要的那样 (文档在您的示例中)然后使用重写规则将 ServerPath 绑定到新位置。不要忘记 $1(匹配部分)。

不要忘记在 apache 中加载 mod_rewrite。

相关内容