![将特定 URL 重定向到 apache 中的其他虚拟主机](https://linux22.com/image/520463/%E5%B0%86%E7%89%B9%E5%AE%9A%20URL%20%E9%87%8D%E5%AE%9A%E5%90%91%E5%88%B0%20apache%20%E4%B8%AD%E7%9A%84%E5%85%B6%E4%BB%96%E8%99%9A%E6%8B%9F%E4%B8%BB%E6%9C%BA.png)
我的 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。