从Apache中的单个虚拟主机重定向多个Url

时间:2018-05-14 08:53:07

标签: apache redirect virtualhost

我在我的本地系统中使用weblogic托管了4个托管服务器,我想使用apache将webrequests重定向到它们,虽然我已经实现了但是目前我使用4个虚拟主机来实现它,我认为不是这样的非常有效的方法。

因此,我想使用单个虚拟主机重定向到这4个托管服务器,如果可能的话,可能会基于一些别名。

以下是我迄今为止所做的工作:

<VirtualHost *:8080>
Redirect / http://samplehost:16200/cs
</VirtualHost>

<VirtualHost *:8081>
Redirect / http://samplehost:16250/ibr
</VirtualHost>

<VirtualHost *:8082>
Redirect / http://samplehost:16225/wcc
</VirtualHost>

<VirtualHost *:8083>
Redirect / http://samplehost:16400/cpt
</VirtualHost>

有什么方法可以将这些内容与一个虚拟主机联系起来?,任何出路?可能正在使用服务器名称或别名,无论哪个可以帮助。

我尝试使用RewriteRule实现这一点,但它没有奏效,以下是该代码:

 <VirtualHost *:84>

  RewriteEngine on

  /
  RewriteRule "^/$" "http://www.google.co.in" [R,L]
  RewriteRule "^/am/?$" "http://www.amazon.co.in" [R,L]
  RewriteRule "^/fk/.+" "http://www.flipkart.co.in" [R,L]

 </VirtualHost>

提前感谢您的帮助,我仍在刷我的Apache概念,任何帮助都会很棒!!!

1 个答案:

答案 0 :(得分:0)

我现在找到了一种类似于魅力的出路,让我们看看它的样子:

<VirtualHost samplehost:80>
RewriteCond %{REQUEST_URI} ^/cs/ 
Redirect / http://samplehost:16200/

RewriteCond %{REQUEST_URI} ^/ibr/ 
Redirect / http://samplehost:16250/

RewriteCond %{REQUEST_URI} ^/wcc/ 
Redirect / http://samplehost:16225/

RewriteCond %{REQUEST_URI} ^/cpt/ 
Redirect / http://samplehost:16400/

</VirtualHost>

因此我甚至不必记住不同虚拟主机的端口号。

在做这个的时候我甚至找到了另一个解决方案,它看起来像这样:

  <VirtualHost samplehost:80>


  RewriteEngine On

  RewriteRule "^/cs/?$" "http://samplehost:16200/cs" [R,L]
  RewriteRule "^/ibr/?$" "http://samplehost:16250/ibr" [R,L]
  RewriteRule "^/wcc/?$" "http://samplehost:16225/wcc" [R,L]
  RewriteRule "^/cpt/?$" "http://samplehost:16400/cpt" [R,L]

  </VirtualHost>

这两个解决方案都非常出色,感谢@arkascha带来了RewriteCond。

感谢您的帮助!!!